NSString的用法

 1 #pragma mark NSString的创建
 2 void stringCreate() {
 3     // char *s = "A String!"; // C语言中的字符串
 4     
 5     // 这种方式创建出来的字符串是不需要释放的
 6     NSString *str1 = @"A String!";
 7     
 8     NSString *str2 = [[NSString alloc] init];
 9     str2 = @"A String!";
10     [str2 release];
11     
12     NSString *str3 = [[NSString alloc] initWithString:@"A String!"];
13     [str3 release];
14     // 不需要管理内存
15     str3 = [NSString stringWithString:@"A String!"];
16     
17     
18     NSString *str4 = [[NSString alloc] initWithUTF8String:"A String!"];
19     [str4 release];
20     str4 = [NSString stringWithUTF8String:"A String!"];
21     
22     NSString *str5 = [[NSString alloc] initWithFormat:@"My age is %i and height is %.2f", 19, 1.55f];
23     
24     // 这句代码放在中间会造成2个错误:
25     // 1.前面创建的字符串没有被释放
26     // 2.后面创建的字符串会释放过度,造成野指针错误
27     // str5 = [NSString stringWithFormat:@"My age is %i and height is %.2f", 19, 1.55f];
28     
29     NSLog(@"str5:%@", str5);
30     [str5 release];
31     
32     str5 = [NSString stringWithFormat:@"My age is %i and height is %.2f", 19, 1.55f];
33 }
34 
35 void test(NSString **str) {
36     *str = @"123";
37     // s = @"123";
38 }
39 
40 void stringCreate2() {
41     // 从文件中读取文本
42     NSString *path = @"/Users/apple/Desktop/test.txt";
43     // 这个方法已经过期,不能解析中文
44     // NSString *str1 = [NSString stringWithContentsOfFile:path];
45     
46     // 定义一个NSError变量
47     NSError *error;
48     // 指定字符串编码为UTF-8: NSUTF8StringEncoding
49     NSString *str1 = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error];
50     if (error == nil) { // 没有错误信息
51         NSLog(@"读取文件成功:%@", str1);
52     } else {
53         NSLog(@"读取文件失败:%@", error);
54     }
55     
56     NSURL *url = [NSURL URLWithString:@"file:///Users/apple/Desktop/test.txt"];
57     NSString *str2 = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
58     NSLog(@"%@", str2);
59     
60     NSURL *url2 = [NSURL URLWithString:@"http://www.baidu.com"];
61     NSString *str3 = [NSString stringWithContentsOfURL:url2 encoding:NSUTF8StringEncoding error:nil];
62     NSLog(@"%@", str3);
63 }
64 
65 #pragma mark 字符串的导出
66 void stringExport() {
67     NSString *str = @"123456我是字符串!!!!";
68     // 如果文件不存在,会自动创建文件
69     // 如果文件夹不存在,会直接报错
70     NSString *path = @"/Users/apple/Desktop/abc.txt";
71     
72     NSError *error;
73     // 编码指定错误也会报错
74     // YES代表要进行原子性操作,也就是会创建一个中间的临时文件
75     [str writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:&error];
76     if (error) {
77         // [error localizedDescription]会返回主要的错误信息
78         NSLog(@"写入失败:%@", [error localizedDescription]);
79     } else {
80         NSLog(@"写入成功");
81     }
82 }

 

posted @ 2015-05-10 20:44  秋叶飘渺  阅读(235)  评论(0编辑  收藏  举报