我正在开发自己的应用程序,并且核心数据存在问题: 我在AppStore和下一版本中提交了我的第一个应用程序,我一直在模型(新实体已添加,现有实体的几个属性已被删除,添加或更新)。 我所做的错误是不要创建一个新的模型版本,我只是做了更改。 现在,当我使用应用程序的第一个版本并更改为第二个版本时,应用程序崩溃是因为核心数据模型已更改。 我无法进行任何迁移,因为该模型没有版本化,所以我没有任何以前的版本。在没有版本的模型中更改后重建CoreData
我的想法是,当应用程序第一次运行时,删除数据模型让应用程序再次创建它(数据丢失没有问题)。
我见过很多的想法: Stack Overflow 1 Stack Overflow 2
但不工作,因为他们无法找到我的文件,这是我的代码:
let documentsDirectory = URL(string: applicationDirectoryPath())! as NSURL
// I've tried many names as: Model.sqlite, Database.sqlite, database.sqlite
let storeURL = documentsDirectory.appendingPathComponent("model.sqlite")
do
{
try FileManager.default.removeItem(at: storeURL!)
} catch
{
print("Problem deleting core data")
}
我如何才能找到名称该文件中把这个功能
appendingPathComponent("I don't know the name of the file")
我该怎么做尾波呢?任何其他想法?
谢谢大家!
是否有原因导致您无法为您的更新版本更新CD型号? – beyerss
是的,我不知道我必须这样做.. @beyerss –
我想我想说的是,即使第一个版本没有版本,我*认为*你可以为这个新版本添加一个版本到CD模型。假设它们的变化很小,那么重量轻的迁移就会启动,并且您将能够无错地更新。我不知道有另一种方法来做到这一点 - 但我承认,不是CoreData专家,所以如果添加版本不是一种选择,那么您可能想等待有更多CD体验的人来参加。但是,如果不使用版本控制,则每个更新都会有相同的问题。 – beyerss