我正在使用plist文件,其中包含我的所有应用数据。该文件非常大,目前我在首次启动时将所有内容加载到Arrays和Dictionaries中并将它们保存到UserDefaults中,这样我就不必再次触摸plist了。因为这需要大约10秒(iP4),我想知道是否有更快(更好)的方式来处理plist。我用仪器检查了整个初创公司,并且通过数百个条目实际上是最快的部分。将这些已处理的内容保存到NSUserDefaults中需要很长时间。
答案 0 :(得分:0)
您可以将plist保存到自己的文件中。这样你就可以控制读/写,没有任何与NSUserDefaults相关的开销,最重要的是,可以确保格式化。也就是说,如果读/写产生减速,那么你必须最小化plist文件大小。可能使用NSPropertyListBinaryFormat_v1_0
的plist格式会这样做:
请参阅:
+ (NSInteger) writePropertyList: (id) plist
toStream: (NSOutputStream *) stream
format: (NSPropertyListFormat)format
options: (NSPropertyListWriteOptions) opt
error: (NSError **) error
来自Apple的物业清单编程指南:
第一种方法[使用NSDictionary或NSArray writeToFile]是 更简单 - 它只需要一个方法调用而不是两个 - 但是 第二种方法[如上]有其优点。它允许你转换 运行时属性列表为二进制格式以及XML属性 名单。转换属性列表的静态表示时 回到对象图表,它还允许您指定更多 这些对象是可变的还是不可变的灵活性。
答案 1 :(得分:0)
有几点。