iOS修复数据模型更新

时间:2014-01-15 11:01:23

标签: ios core-data core-data-migration

我在应用更新期间犯了错误。我在实体中添加了一个字段,并没有为该更改创建新模型。所以我的应用程序在appstore上更新了,当然它崩溃了,因为关闭

 <Error>: *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'This NSPersistentStoreCoordinator has no persistent stores.  It cannot perform a save operation.'

看起来这个新实体存档是100%确定崩溃的原因。

现在我必须进行更新,并且有一个问题:

-model1:在app v1中没有字段'three'的myentity

-model1:在app v2中使用字段'three'的myentity

现在如果我创建这个

-model2:在app v3中使用字段'three'的myentity

对于未将应用程序从v1更新到v2的用户的应用程序将正常工作,然后他们将应用程序从v1更新为v3。

此数据库模型更新的工作方式类似于将模型版本之后的数据库模型版本更新到顶部,或者在我的应用程序开发期间有5个数据库模型时,有人将app1 v1与model1更新到app v5且模型v5它忽略了模型v2-4 ?

1 个答案:

答案 0 :(得分:0)

我不完全理解你的解释,但考虑到你从未创建过新模型,那么那里的所有商店都不应该升级,所以它们仍然是没有附加字段的早期版本。

因此,您的下一次更新需要使用原始model1而不使用新字段,而另一个model2需要包含新字段。

这似乎是您的应用v3中的内容。除了你没有提到app v3将具有BOTH model1(没有字段)和model2(带有新字段)。确保应用程序包中包含两个版本的Core Data模型。它们都应该出现在主模型包中。