我已經(重)子類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