我正在关注this how-to在我的应用中实施核心数据存储:
我有Model.xcdatamodel
定义Something
模型。我使用XCode为该模型生成一个类
我已经在我正在尝试的.m文件中导入了这个类:
Something* s = (Something *)[NSEntityDescription insertNewObjectForEntityForName:@"Something" inManagedObjectContext:managedObjectContext];
但是这会导致以下错误:
2009-10-13 21:18:11.961 w9a[4840:20b] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '+entityForName: could not locate an NSManagedObjectModel for entity name 'Something''
我错过了什么吗?
答案 0 :(得分:4)
就个人而言,我更喜欢以下方法:
// With some NSManagedObjectContext *context
NSEntityDescription *desc = [NSEntityDescription entityForName:@"Something"
inManagedObjectContext:context];
Something *s = [[[Something alloc] initWithEntity:desc
insertIntoManagedObjectContext:context] autorelease];
我注意到它不太容易出现随机Core Data错误,并且更容易调试。它实际上与您的代码做同样的事情,但是首先显式获取实体描述,因此您可以根据需要单独调试它。
答案 1 :(得分:1)
似乎您的对象模型中没有名为“Something”的NSManageObject ...您是否在对象模型中创建了实体?我不确定你是否也需要生成代码,但是你可以让xcode自动为你做这个,点击实体,说新的,然后从那里的菜单中选择Managed Object
答案 2 :(得分:0)
发现我的问题,NSManagedObjectContext由于某种原因没有正确初始化。我已经按照操作方法重新编写了代码,现在它似乎正常工作。
非常感谢:)