今天用coredata事,忽然遇到这个问题:找了一会终于发现问题所在,与大家分享一下
导致这个问题的原因是因为找不到.xcdatamodeld所致,不同的人可能遇到的问题不同
可能原因1: NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"Model" withExtension:@"momd"];
因为.cxdatamodeld经过编译之后会在.app中生成以个.momd文件,你可以查看一下model文件的名称与你创建的.cxdatamodeld文件名是否相同,不同的话通过URLForResource:@"Model" 名字
可能原因2:系统中根本没有.cxdatamodeld文件,你可能说有啊,那就是没有连接的问题,你可以通过build phases->compile sources 查看.cxdatamodeld是否存在,不存在的点击+号,导入就可以了
如果你的工程中没有.cxdatamodeld文件的话,可以通过newFile->core data->data model 创建.cadatamodeld文件,不过需要导入系统<CoreData/CoreData.h>这个库,手动添加单个属性个两个方法,因为属性是readonly的,所有必须在.m中添加@synthesize生成get和set方法
问题解决后:可能会出现新的问题"The model used to open the store is incompatible with the one used to create the store";
这个时候吧沙盒里的东西清除一下就可以了,或者删除模拟器里的应用,再次运行就好了
时间: 2024-12-18 00:31:45