Kam*_*tka 3 core-data nsmanagedobject ios
我对我的模型进行了一些更改(但我还不想迁移,所以我只删除应用程序,构建干净等)
但是,当我在iPhone或模拟器上运行它时,我收到以下错误:
***由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'executeFetchRequest:error:获取请求必须有一个实体.
我像这样设置实体:
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Document" inManagedObjectContext:managedObjectContext];
Run Code Online (Sandbox Code Playgroud)
我的managedObjectContext不是nil.但我怀疑它没有正确加载对象模型或类似的东西,因为如果我在模型中显示实体,列表为空:
managedObjectModel = [[NSManagedObjectModel mergedModelFromBundles:nil] retain];
NSLog(@"%d", [[managedObjectModel entities] count]);
Run Code Online (Sandbox Code Playgroud)
如何确保加载模型?
你在哪里"展示实体"?如果它们没有出现在数据模型编辑器中,则它们不存在.
您可以使用-[NSManagedObjectModel entities]获取模型具有的实体数组.
反过来,您可以使用-[NSPersistentStore managedObjectModel]查看加载的模型,然后查询其实体.
但是要告诉你,大多数时候这个错误是由拼写错误造成的.这就是为什么使用定义或类方法返回实体名称的好处.
我遇到了同样的问题.正如TechZen评论中所建议的那样,我的修复是右键单击Xcode 3.x中的文件,选择"获取信息",然后勾选"目标"选项卡下的相应框.
更新:在Xcode 4中,"获取信息"菜单选项已被删除.相反,您可以为右侧边栏中的文件定义"目标成员资格".
| 归档时间: |
|
| 查看次数: |
9807 次 |
| 最近记录: |