2011-02-24 66 views
3

我正在从sqlite数据库中加载数据,存储我从那里加载的自定义类的实例变量中的值,然后将此类添加到可变数组中,然后我分配给我的视图控制器的实例变量,在tableview中使用。如何保存/重新加载自定义数组到plist

虽然我会将该数组保存到应用程序第一次运行的文档目录中的.plist文件中,以便我可以在装入时从中检索整个对象,而不是从数据库。

这种方法是更好的选择吗?如果是这样的话,有人可以帮助我提供一些代码,使我可以将我的自定义类的数组保存为.plist文件吗?我在网上遇到了很多示例代码,但没有一个能正常工作。

我想:

  • 检查的my_data.plist文件的存在。
  • 如果存在,请将其作为数组读取。
  • 如果没有,请将数据从sqlite数据库读取到数组中。
  • 将此数据保存为.plist,以便稍后以更快的速度读取。

谢谢你们,感谢你们给我的任何帮助。

+0

您运行的示例代码没有正确工作的方式?代码是什么?当你运行它时发生了什么? – occulus 2011-02-24 20:54:42

回答

3

它可能会更快刚从启动数据库获取值。解析包含这些值的plist几乎肯定会花费更多的成本,而不是从数据库中全部获取它们,除非您必须使用从数据库中获取它们的查询非常慢。

请注意,一旦将这些对象保存到磁盘上的plist中,实际上会损害程序的性能,因为您将对象写入磁盘两次并从磁盘读取两次。如果发生错误或崩溃,您还会引入plist和数据库之间的差异。

也就是说,证明这一点的唯一方法就是实现并分析两个选项,并比较实际数字。查看上面的@ occulus链接,了解如何阅读和编写plist的说明。要分析您的应用,请尝试使用Instruments

+0

谢谢,我会看看链接并测试它。 – 2011-02-24 21:23:42