在非基于文档的应用程序中保存数据

时间:2016-02-18 00:24:12

标签: ios macos cocoa cocoa-touch nskeyedarchiver

我有一个类似于新Notes应用程序的应用程序。侧边栏包含有关不同文件(日期,标题,摘录)的信息,详细信息视图显示整个内容。

要在我的应用中存储数据,我使用NSKeyedArchiver。每个文件都是分开存储的,以使iCloud Sync更容易。

所以这是我的问题:在边栏中存储和加载这些数据有什么好方法吗?

问题在于,当应用程序启动时,它会遍历每个可用文件以加载所需的信息。但是,即使我只需要日期和标题,也会为每个文件加载整个对象图。有什么我可以做的来优化这个吗?

我应该使用一个单独的索引文件来存储所有日期和标题吗?

我使用错误的存储概念吗?

任何建议都将不胜感激!

1 个答案:

答案 0 :(得分:0)

您需要做的就是将密钥信息(日期和标题)与其他数据分开存储。

当您启动应用程序时,您可以加载密钥信息并显示它,然后仅在需要时通过将标题链接到内容来检索其余数据。

你可以使用CoreData - 但可能是矫枉过正。

Realm对此非常有用。这里提供了一个很好的教程http://www.raywenderlich.com/112544/realm-tutorial-getting-started