如何简单地删除旧的核心数据并重build新的数据?

我试图将coreData迁移到新版本,我正在执行以下步骤:

如果您有一个应用程序已经提交到正在使用较早的模型版本的应用程序商店,添加一个新的模型版本(selectname.xcdatamodeld然后编辑器 – >添加模型版本)进行任何更改之前。

然后,从核心数据选项卡添加一个新文件,如映射模型select,源模型(提交的应用程序使用的模型版本)目标模型(您已经完成更改的模型版本)

资源

但我的数据主要是图像和应用程序崩溃,因为它需要大量的内存。 所以我想删除旧的数据模型及其数据,并在用户更新应用程序时创build空的新模型数据。 这个怎么做?

如果数据模型发生变化,您可以简单地检查数据库文件的模型。 如果不是新的,则使用NSFileManager删除StoreCoordinator中指定的文件,并再次初始化StoreCoordinater和NSManagedContext以创build一个新的。

类似的东西(没有testing代码):

 var error: NSError var applicationDocumentsDirectory: NSURL = NSFileManager.defaultManager().URLsForDirectory(NSDocumentDirectory, inDomains:NSUserDomainMask).lastObject let storeURL: NSURL = applicationDocumentsDirectory.URLByAppendingPathComponent("Database.sqlite") NSFileManager.defaultManager().removeItemAtPath(storeURL.path, error) 

如果模型没有改变,则需要将更新的信息保存在任何地方。 一个文本文件,在数据库本身或UserDefaults中。 您只需要一个标志来检查数据库是否已被更新/清理。

然后,您也可以像上面那样删除数据库,或者获取所有对象并删除它们。