初始化iPhone应用程序核心数据的最佳方法?

时间:2011-07-30 13:54:00

标签: iphone core-data

我有一个很长的方法来初始化我的核心数据。

我可以想到在最终应用中实现这两种方法:

  • 在应用程序中包含该方法,如果没有数据则执行该方法。

  • 从app中排除方法,提前创建一个SQLite数据库,将其包含在bundle中,如果没有数据则将其复制到documents文件夹中。

哪一个更好,还是我应该抛硬币?对于未来的操作系统更新,其中一个更安全吗?

1 个答案:

答案 0 :(得分:3)

无论您选择哪种方式,都可以通过自动迁移轻松更新数据模型,但如果选择捆绑的数据库,将来的默认设置将更难处理。例如,您的长时间用户将不会获得您添加的任何未来默认值,因此如果您添加了一个很棒的新功能,并且他们已经拥有了数据库,那么除非您将它们放入代码中,否则它们将无法获得该功能的默认值,无论如何你必须编写代码。因此,我倾向于基于方法的解决方案。

  1. 创建具有“CurrentDataVersion”键的NSUserDefaults键
  2. 当应用程序运行时,请阅读此密钥,将其与代表当前应该是什么的硬编码版本进行比较,然后使用它来确定应添加哪些数据。
  3. 添加新数据后,更新CurrentDataVersion键,使其不再运行
  4. 这解决了老客户获得更新默认值的问题,并且在未来更新方面更加用户友好。因为你提到你的方法很长,向客户展示这个方法的标准方法是设置一个微调器和“初始化......这只会发生一次”之类的东西。