如何持久化并加载符合NSCoding协议的对象?

时间:2010-03-15 21:06:21

标签: iphone persistence nskeyedarchiver nscoding

我创建了一个符合NSCoding协议的类,并完成所有编码和解码。

对于我的应用程序,我只想将该类中的对象持久保存到设备中,下次应用程序启动时,我想将该对象加载回内存。

基本上它只是一个包含一些用户输入信息的类。例如,用户开始编写文本,但随后退出应用程序。下次我想加载该数据对象。

我想我需要NSKeyedArchiver?这是一个很好的教程吗?我该怎么做?

1 个答案:

答案 0 :(得分:3)

是的,你需要NSKeyed(Un)Archiver。这两个类可以将您的对象转换为NSData,也可以从NSData转换,您可以将其保存/加载为文件。

将对象保存到文件中:

if (![NSKeyedArchiver archiveRootObject:your_object toFile:@"filename.plist"])
   // save failed.

从文件中读取对象:

id your_object = [NSKeyedUnarchiver unarchiveObjectWithFile:@"filename.plist"];
if (your_object == nil)
  // read failed.