Я (сильно) подклассифицировал 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