您的位置:首页 > 职场人生

黑马程序员---Foundation - NSString

2015-08-09 20:25 447 查看
一个NSString对象就代表一个字符串(文字内容),一般称NSString为字符串类

NSString的创建

最直接的方式(这是常量字符串)
NSString *str=
@"I'min itcast.";

格式化的方式
NSString *str= [NSString
stringWithFormat:@"Myage is %d",10];

NSString *str= [[NSString
alloc]initWithFormat:@"Myage is %d",10];

上面两种创建字符串的区别:堆、栈、常量区域。通过%p查看一下内存地址。

<
4000
p>对于同一个常量字符串,只保存一份。而通过stringWithFormat创建的两个相同的字符串内存中也是两个不同的堆对象。

从文件中读取
// 用来保存错误信息

NSError*error =
nil;

// 读取文件内容

NSString *str= [NSString
stringWithContentsOfFile:@"/Users/mj/Desktop/test.txt"
encoding:NSUTF8StringEncoding
error:&error];

// 如果有错误信息

if(error) {

   NSLog(@"读取失败,
错误原因是:%@",[error
localizedDescription]);

} else {
// 如果没有错误信息

   NSLog(@"读取成功,
文件内容是:\n%@",str);

}

从URL中读取
//如果目录中没有中文,访问本地文件的时候没有问题。
NSURL *url =[NSURL URLWithString:@"file:///Users/Steve/Desktop/w/o/test.txt"];
       
NSLog(@“%@”, [url path]); // 输出路径
NSError *err= nil;
NSString *text= [NSString stringWithContentsOfURL:urlencoding:NSUTF8StringEncoding error:&err];
        
if (err){
 //如果出错了。
   NSLog(@"出错了。错误信息: %@",text);
}else {
  //如果没有错误信息
      NSLog(@"%@", text);
}

NSString的存储

可以将NSString存储到一个文件中
NSString *str =@"哇哈哈哈";

[str writeToFile:@"/Users/mj/Desktop/str.txt"
atomically:YES
encoding:NSUTF8StringEncoding
error:nil];

// 注意:使用fileURLWithPath防止目录中有中文

[str writeToURL:[NSURL
fileURLWithPath:@"/Users/mj/Desktop/str.txt"]
atomically:YES
encoding:NSUTF8StringEncoding
error:nil];

atomically : 原子的。如果文件写入不完整,则不会创建文件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: