是否可以将NSMutableArray及其所有内容存储到文件中,然后从那里恢复?

时间:2009-08-13 18:23:00

标签: iphone persistence

iPhone OS中有哪些序列化?这几乎是可能的,还是我应该很快忘记这一点?

我正在创建一个小应用程序,它将一些输入存储在NSMutableArray中。当用户离开时,输入应该保持活着状态,直到他/她返回继续向该阵列添加或移除内容。

当应用程序退出时,必须有一些方法将数组中的所有内容存储在一个文件中。或者我必须迭代它,撕掉所有内容并将其写入,即以逗号分隔某处,然后再次进入,读取内容,并迭代文件中的行以生成包含该数据的数组?那就像砖块一样难。怎么样?

4 个答案:

答案 0 :(得分:3)

简单的方法,因为你已经有了一个NSArray对象,就是使用

将数组写入磁盘
- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)flag

并阅读:

- (id)initWithContentsOfFile:(NSString *)aPath

+ (id)arrayWithContentsOfFile:(NSString *)aPath

您也可以使用NSCoder。

你可以搜索一下正确的代码。

答案 1 :(得分:1)

只要数组中的对象实现NSCoding(NSString和NSValue;如果你存储自己的对象,它相对简单),你可以使用:

[NSKeyedArchiver archiveRootObject: array toFile: filePath];

保存并且:

array = [NSKeyedUnarchiver unarchiveObjectWithFile: filePath];

加载。

您可以类似地加载/保存到NSData。

答案 2 :(得分:0)

iPhone SDK旨在使用SQLite tables存储数据。

答案 3 :(得分:0)

您可以使用NSPropertyListSeralization,因为NSArray是一种属性列表。您可以找到更多信息here