我已经(重)子类NSManagedObject的一个项目。它无缝地在原始项目中工作,毫不费力。为什么我的NSManagedObject子类方法不被识别?
我将这些文件复制到一个新的项目中,手动将相应的CoreData类添加到新的数据模型中。
不幸的是,我有'问题'。出于某种原因,有关子类的方法被忽略。两个项目之间的代码完全相同,但我突然间遇到了无法识别的选择器问题。
NSFetchRequest *blockRequest=[[NSFetchRequest alloc] init];
NSEntityDescription *blockDesc=[NSEntityDescription entityForName:@"AdBlock"
inManagedObjectContext:context];
[blockRequest setEntity:blockDesc];
AdBlock *curBlock=[adBlocks objectAtIndex:blockIndex];
adBlocks=[context executeFetchRequest:blockRequest error:nil];
for (AdBlock *block in adBlocks) {
[block initAdBlock];//Crashes with unrecognized selector
}
我检查了,并且相应的.m文件被添加到编译器构建阶段。该代码完全是从字面上复制&粘贴,并且两个项目之间是相同的 - 源代码作品,目的地不。
我注意到,我没有明确地告诉上下文它应该返回子类的类型,但这在旧项目中不是问题,那为什么它应该是新问题呢?
因此您将新类添加到数据模型中,但是您是否已将类名更改为您的自定义类? – Rog