在 iPhone 上存储 json 数据:按原样保存 json 字符串 VS 从 json 创建一个对象并使用 NSCoding NSKeyedArchiver

Storing json data on the iPhone: save the json string as it is VS make an object from json and use NSCoding + NSKeyedArchiver

在我的 iPhone 应用程序中,我从远程服务器获取 json 数据,使用 Json 框架对其进行解析并将其呈现在 UIview 中。还希望能够为用户提供将数据存储在设备上的选项,以便也可以离线查看。我想知道直接存储 json 数据是否比创建对象然后使用 NSCoding NSKeyedArchiver 保存更好或更差的选择。我假设按原样存储 json 字符串的优点是它在磁盘上占用的空间比存档对象少,而另一方面,通过存储存档对象,您不必每次都解析存储的数据因此使用更少的内存。

有没有最佳的整体选择?有没有关于这个问题的最佳实践? json 文件大小约为 8KB。


我使用不同的方法。在我的应用程序中解析 JSON 数据后,它就会存储在 NSDictionary 中。我将其保留为 .plist 文件。

1
[myDictionary writeToFile:[self saveFilePath] atomically:YES];

加载:

1
NSMutableDictionary *wholeDictionary = [NSDictionary dictionaryWithContentsOfFile:[self saveFilePath]];

就是这样!