NSMigratePersistentStoresAutomaticallyOption

使用CoreData的轻量级自动数据迁移

核能气质少年 提交于 2019-12-04 19:09:54
使用IOS的CoreData进行存储很方便,CoreData已经帮我们做了很多基础的工作,一般情况下没必要自己操作数据库了。 在开发中修改了实体模型,可能会遇到schema incompatibility的错误,这是因为修改了数据结构,要进行数据迁移。 其实很多简单的情况,不用这么麻烦,Coredata提供了轻量级的自动数据迁移,比如以下三个情况会自动进行: 1.简单的增加一个字段 2.把一个必填字段改为可选字段 3.把可选字段改为必填字段(但一定要定义默认值) 怎样开启自动迁移的功能?分三步 1.在App delegate类里修改persistentStoreCoordinator方法 - (NSPersistentStoreCoordinator *)persistentStoreCoordinator { if (__persistentStoreCoordinator != nil) { return __persistentStoreCoordinator; } NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"WorkXP.sqlite"]; NSError *error = nil; __persistentStoreCoordinator = [