core data是苹果自带的一个轻量本地数据库,速度较快使用也比较方便,但是数据迁移需要多多注意
1、选中你的base xcdatamodel文件,Editor--Add Model Version
2、在右侧工具栏Model Version --current选择新版xcdatamodel文件
3、在新版xcdatamodel添加你想添加的entity或者attribute
4、[self persistentStoreCoordinator];
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator
{
if (_persistentStoreCoordinator != nil) {
return _persistentStoreCoordinator;
}
_persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"MyCacheData.sqlite"];
NSDictionary * options = @{NSMigratePersistentStoresAutomaticallyOption:[NSNumber numberWithBool:YES],
NSInferMappingModelAutomaticallyOption:[NSNumber numberWithBool:YES]
[_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error]
return _persistentStoreCoordinator;
}
这一步很重要,如果没有自动迁移,会导致crash
5、Mapping Model
关于mapping其实可以选择删除原来类重新生成,也可以自己添加
如果使用了三方比如Magical Record等一些三方软件,可以直接[MappingModel类 MR_createInContext:context];然后对象使用set方法赋值,这个很方便
自己生成的话有Mapping Model类文件,选择映射的xcdatamodel文件。有自动映射和手动映射
推荐文章:blog.csdn.net/jasonblog/article/details/8528755
如果对您有帮助,请点个赞啊