iphone - 如何将自定义数组保存/重新加载到 plist

标签 iphone cocoa-touch ios plist

我从 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/

相关文章:

iphone - 如何以编程方式使 iPhone 静音

IOs 自动布局顶部位置

ios - 仅使用 Windows 对 IPA 文件进行代码签名

ios - 此服务器的证书无效

iOS 9 状态栏元标记和启动图像链接不起作用

swift - 从 json 字符串保存实体对象时出现问题 - 如何从可编码继承?

ios - Objective-C 命名 UILabel iOS

iphone - 为 UIWebView 设置最大缩放比例

iOS Key Value 观察Xcode项目问题

objective-c - 从sqlite表中删除数据iPhone SDK?