对于这个项目,我可以采取任何一种方式,但我很好奇,如果使用plist来存储一些数据,那么效率会比仅仅将plist保存在documents文件夹中更高或更低。数据大约是50个字符串/字典。
在这两种情况下,数据都会使用某些文件IO保留,因此磁盘访问应该类似。
但是,plist似乎还有点工作。
答案 0 :(得分:6)
NSUserDefaults 是一个plist(这就是为什么只有plist类型可以存储在其中的原因)。因此,最终效率不会有太大差异(无论你的意思是什么)。您的考虑应该是适当的来保存这些数据。 Apple说,不要将它保存在Document文件夹中,除非它适合存储在iCloud中。它将在用户备份设备时备份,并将从用户的配额中减去,因此您需要节省您保留的内容。
在我自己的一个应用程序中,我从RSS源下载大量数据并将其呈现给用户,我将数据存储在用户默认值中,因为它是下次应用程序持久状态的一部分出现。我的数据不是文件;这是应用程序的状态。这是我的推理,我建议你可以沿着类似的路线推理......
答案 1 :(得分:1)
在我看来,plist比NSuserDefaults使用起来要简单得多。毕竟,字典可以将自己保存为plist。至于效率,它们应该与NSUserDefaults将所有内容存储为plist相同,但提供更多服务,例如比较哪些键/值对与提供的一组键/值默认对相比发生了变化。
答案 2 :(得分:0)
您可能需要使用JSONKit来考虑JSON。如果速度是您主要考虑的问题,一些测试显示它是faster than a binary plist。 API非常简单,因为它会在NSDictionary
和NSArray
上创建一个类别。在这些对象中的任何一个上调用-(NSData *)JSONData
都会返回一个准备保存的NSData
对象。