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 }