iPhone OS中有哪些序列化?这几乎是可能的,还是我应该很快忘记这一点?
我正在创建一个小应用程序,它将一些输入存储在NSMutableArray中。当用户离开时,输入应该保持活着状态,直到他/她返回继续向该阵列添加或移除内容。
当应用程序退出时,必须有一些方法将数组中的所有内容存储在一个文件中。或者我必须迭代它,撕掉所有内容并将其写入,即以逗号分隔某处,然后再次进入,读取内容,并迭代文件中的行以生成包含该数据的数组?那就像砖块一样难。怎么样?
答案 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。