2017-05-25 54 views
0

我正在开发自己的应用程序,并且核心数据存在问题: 我在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")

我该怎么做尾波呢?任何其他想法?

谢谢大家!

+0

是否有原因导致您无法为您的更新版本更新CD型号? – beyerss

+0

是的,我不知道我必须这样做.. @beyerss –

+0

我想我想说的是,即使第一个版本没有版本,我*认为*你可以为这个新版本添加一个版本到CD模型。假设它们的变化很小,那么重量轻的迁移就会启动,并且您将能够无错地更新。我不知道有另一种方法来做到这一点 - 但我承认,不是CoreData专家,所以如果添加版本不是一种选择,那么您可能想等待有更多CD体验的人来参加。但是,如果不使用版本控制,则每个更新都会有相同的问题。 – beyerss

回答

相关问题