黑马程序员--Object-C文件加载与保存

Cocoa 提供了CoreData在后台处理所有文件内容,还提供了两个通用的文件处理类:

  • 属性列表
       在Cocoa中,有意诶名为属性i的对象简写为plist 。这些列表包含Cocoa知道如何操作的一组对象。具体来讲Cocoa 知道如何将他们保存到文件中并进行加载。属性列表类包括NSArray、NSDictionary 、NSString、NSNumber 、NSData 和NSDate,以及他们的变体。
  • 对象编码
Cocoa具备一种机制来将对象自身转换为某种格式并保存到磁盘中。对象可以将他们的实例变量和其他数据编码为数据块,然后保存在磁盘中。以后还将这些数据块读回到内存中,并且还能机遇保存的数据创建新对象。这个过程称为 编码解码, 或者称为 序列化 反序列化。
    对于任何Object-C对象类型,都可以使用encodeObject:forKey:,每种类型都有不同的encodeObject:forKey:。如果需要回复某个对象,则使用decodeSomethingForKey:方法。

NSDate
用于处理时间和日期。
NSDate *date = [NSDate date ];
NSLog (@"today  is %@",date );

将输出当前时间结果。


NSData 
NSData是一个对象,将数据块传递给一个函数或方法,无需担心内存清除问题。NSData对象时不可改变的,他们被创建之后就不能改变。可以使用它们,但不能更改其中的内容。但是NSMultableData支持在数据内容中添加和删除字节。
const char *string ="Hi there ,this is a C string.";
NSData *data =[NSData dataWithBytes:string
                  length :strlen(string)+1];
NSLog(@"data is %@",data ) 

写入和读取属性列表

  • 集合属性列表类(NSArray、NSDictionary )具有方法-writeToFile:atomically :用于将属性列表写入文件;
  • NSString 和NSData也具有writeToFile:atomically:方法写出字符串或者数据块。
//将数据存储在文件中
NSArray *array;
array =[NSArray arrayWithObjects:@"I",@"seem",@"to",@"be",@"a",@"verb",nil];
[array writeToFile:@"/tmp/verb.txt"atomically:YES ];

//读取文件
NSArray *array1 = [NSArray rrayWithContentsOfFile:@"/tmp/verb.txt "];
NSLog(@"%@",array1 );
这些函数的缺点是:他们不会反悔任何错误。如果不能加载文件,只能从方法中得到nil指针,而不能确定出现了何种错误。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值