OC之【NSString】

来源:互联网 发布:建个网络平台多少钱 编辑:程序博客网 时间:2024/05/12 12:14

#pragma mark NSString的创建

void stringCreate() {

    // char *s = "A String!"; // C语言中的字符串

    

    //这种方式创建出来的字符串是不需要释放的

   NSString *str1 = @"A String!";

    

   NSString *str2 = [[NSStringalloc] init];

    str2 =@"A String!";

    [str2release];

    

   NSString *str3 = [[NSStringalloc] initWithString:@"A String!"];

    [str3release];

    // 不需要管理内存

    str3 = [NSStringstringWithString:@"A String!"];

    

    

    NSString *str4 = [[NSStringalloc] initWithUTF8String:"A String!"];

    [str4release];

    str4 = [NSStringstringWithUTF8String:"A String!"];

    

    NSString *str5 = [[NSStringalloc] initWithFormat:@"My age is %i and height is %.2f",19, 1.55f];

    

    //这句代码放在中间会造成2个错误:

    // 1.前面创建的字符串没有被释放

    // 2.后面创建的字符串会释放过度,造成野指针错误

    // str5 = [NSString stringWithFormat:@"My age is %i and height is %.2f", 19, 1.55f];

    

   NSLog(@"str5:%@", str5);

    [str5release];

    

    str5 = [NSStringstringWithFormat:@"My age is %i and height is %.2f",19, 1.55f];

}


void test(NSString **str) {

    *str =@"123";

    // s = @"123";

}


void stringCreate2() {

    //从文件中读取文本

    NSString *path =@"/Users/apple/Desktop/test.txt";

    //这个方法已经过期,不能解析中文

    // NSString *str1 = [NSString stringWithContentsOfFile:path];

    

    // 定义一个NSError变量

   NSError *error;

    // 指定字符串编码为UTF-8: NSUTF8StringEncoding

    NSString *str1 = [NSStringstringWithContentsOfFile:path encoding:NSUTF8StringEncodingerror:&error];

   if (error == nil) {// 没有错误信息

       NSLog(@"读取文件成功:%@", str1);

    }else {

       NSLog(@"读取文件失败:%@", error);

    }

    

    NSURL *url = [NSURLURLWithString:@"file:///Users/apple/Desktop/test.txt"];

    NSString *str2 = [NSStringstringWithContentsOfURL:url encoding:NSUTF8StringEncodingerror:nil];

   NSLog(@"%@", str2);

    

    NSURL *url2 = [NSURLURLWithString:@"http://www.baidu.com"];

    NSString *str3 = [NSStringstringWithContentsOfURL:url2 encoding:NSUTF8StringEncodingerror:nil];

   NSLog(@"%@", str3);

}


#pragma mark 字符串的导出

void stringExport() {

    NSString *str =@"123456我是字符串!!!!";

    //如果文件不存在,会自动创建文件

    //如果文件夹不存在,会直接报错

    NSString *path =@"/Users/apple/Desktop/abc.txt";

    

   NSError *error;

    //编码指定错误也会报错

    // YES代表要进行原子性操作,也就是会创建一个中间的临时文件

    [str writeToFile:pathatomically:YESencoding:NSUTF8StringEncodingerror:&error];

   if (error) {

        // [error localizedDescription]会返回主要的错误信息

        NSLog(@"写入失败:%@", [error localizedDescription]);

    }else {

       NSLog(@"写入成功");

    }

}


//void test2(int *p) {

//    *p = 9;// a = 9;

//}


int main(int argc,const char * argv[])

{


    @autoreleasepool {

//        int a = 10;

//        test2(&a);

//        NSLog(@"%i", a);

        

        stringExport();

        

//        NSString *s = @"456";

//        

//        test(&s);

//        

//        NSLog(@"%@", s);

    }

   return 0;

}


原创粉丝点击