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