我从 sqlite 数据库加载数据,将我从那里加载的值存储在自定义类的实例变量中,然后将此类添加到可变数组,然后我将其分配给实例变量我的 View Controller ,用于 TableView 。
不过,我希望在应用程序首次运行时将此数组保存到文档目录中的 .plist 文件中,这样我就可以在加载时从那里检索整个对象,而不是从数据库中提取所有 214 个项目.
这种方法是更好的选择吗?如果是这样,有人可以帮我提供一些代码,让我可以将自定义类的数组保存为 .plist 文件吗?我在网上看到过很多示例代码,但没有一个能正常运行。
我愿意:
- 检查 my_data.plist 文件是否存在。
- 如果存在,则将其作为数组读入。
- 如果没有,则将 sqlite 数据库中的数据读入数组。
- 将此数据保存到 .plist,以便以后可以更快地读取它。
谢谢你们,感谢你们能给我的任何帮助。
最佳答案
在启动时从数据库中获取值可能会更快。解析包含这些值的 plist 几乎肯定会比从数据库中获取所有值的成本更高,除非您必须使用从数据库中获取它们的查询非常慢。
另请注意,一旦您将这些对象保存到磁盘上的 plist 中,您实际上会损害程序的性能,因为您会将对象写入磁盘两次并从磁盘读取它们两次。如果出现错误或崩溃,您还将引入 plist 和数据库之间存在差异的机会。
也就是说,向您自己证明这一点的唯一方法可能是实现和分析这两个选项,并比较实际数字。查看上面@occulus 的链接,了解如何读写 plist 的说明。要分析您的应用程序,请尝试使用 Instruments
关于iphone - 如何将自定义数组保存/重新加载到 plist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5110234/