在我的应用程序中,我正在使用SimpleKML框架
https://github.com/mapbox/Simple-KML
我有一些大文件需要大约5秒来处理这个库。我想将对象缓存在像NSData这样的东西中。
我已阅读Apple的这个教程:
但我真的不知道使用nscoder是最好的方法。有人能指出我正确的方向吗?
答案 0 :(得分:1)
您想使用NSKeyedArchiver
和NSKeyedUnarchiver
。
如果您要保存的对象(以及它作为属性的对象及其属性等)实现NSCoding
协议,那么它就像
NSData *savedData = [NSKeyedArchiver archivedDataWithRootObject:someObject];
[savedData writeToFile:pathToSaveFile atomically:YES];
将对象存档到NSData中,然后将其保存到磁盘,然后再将其保存到
NSData *loadedData = [NSData dataWithContentsOfFile:pathToSaveFile];
SomeClass *foo = [NSKeyedUnarchiver loadedData]
加载数据并从数据中取消归档对象。
如果没有,您需要覆盖相关对象的initWithCoder:
和encodeWithCoder:
,以使其正确序列化。