当我更新我的CoreData模型时,它会崩溃应用程序,所以我必须删除旧的应用程序,然后重新安装。这对我很好,但我的问题是:如何告诉我的客户他们必须在重新安装之前删除应用程序?这似乎太复杂了...我只是在模型中添加了1个附加字段,就是这样。
有没有更好的方法来解决这个问题?
由于
答案 0 :(得分:3)
您需要设置数据库迁移...在客户更新时将客户现有数据升级到最新数据模型。对于某些更改,Core Data可以为您完成。对于其他人,您必须自己编写迁移代码。
答案 1 :(得分:0)
就像@Nielsbot所说,核心数据使用的迁移系统。
您可以创建模型的新版本并选择要使用的版本。在AppDelegate方法中需要更改一些代码,其中持久性存储协调器加载模型以告知它加载版本。我建议您阅读Apple的文档,了解如何在https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreDataVersioning/Articles/Introduction.html
实现此目的答案 2 :(得分:0)
如果您只是在表中添加一个字段,则可以创建新版本的数据库。保持当前的不变。
在其中一个菜单中有一个新的数据版本。
在新版本中进行更改。
有很多关于如何做到这一点的教程。
如果你发布了一个崩溃应用程序的更新,那么苹果不会批准它,所以无论如何你都必须这样做。