2011-07-30 44 views
2

我有一个相当长的方法来初始化我的核心数据。为iPhone应用程序初始化核心数据的最佳方式?

我能想到的两种方式在最后的应用程序来实现这一点:

  • 包括在应用程序的方法,如果没有数据执行它。

  • 从应用程序中排除该方法,提前创建SQLite数据库,将其包含在捆绑包中,并在没有数据的情况下将其复制到文档文件夹。

哪一个更好,或者我应该只是抛硬币?其中一个更安全的未来操作系统更新?

回答

3

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

  1. 创建具有“CurrentDataVersion”键
  2. 当应用程序运行时,读取此键,比较反对,表示应该是什么电流,然后用它来确定一个硬编码的版本NSUserDefaults的钥匙应该添加哪些数据。
  3. 添加新的数据后,更新CurrentDataVersion键,以便它不会再次运行

这解决了老年顾客获得新的违约问题,更是用户在未来的更新方面的友好。因为你提到你的方法很长,向客户介绍这种方法的一种标准方式是放置一个微调器,并沿着“正在初始化......这将只发生一次”之类的东西。

相关问题