Я получаю странную ошибку при использовании NSFetchedResultsController
:
-(NSFetchedResultsController*)fetchedResultsController {
if (!fetchedResultsController){
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:[NSEntityDescription entityForName:@"Tag" inManagedObjectContext:moc]];
NSSortDescriptor *sort1 = [[NSSortDescriptor alloc] initWithKey:@"date" ascending:YES];
[request setSortDescriptors:[NSArray arrayWithObjects:sort1, nil]];
[sort1 release];
NSFetchedResultsController *newController = [[NSFetchedResultsController alloc]
initWithFetchRequest:request managedObjectContext:moc sectionNameKeyPath:nil cacheName:nil];
[request release];
newController.delegate=self;
self.fetchedResultsController=newController;
[newController release];
}
return fetchedResultsController;
}
для возврата экземпляра класса Tag
, подкласса которого NSManagedObject
:
Tag* tag = [self.fetchedResultsController objectAtIndexPath:indexPath];
Хотя XCodeпризнает, что тег является экземпляром класса Tag
, во время выполнения он [tag class]
возвращает NSManagedObject
и не отвечает ни на какие методы Tag.Странно то, что это работало правильно в предыдущей версии кода, но после последней перезаписи (запущенной заново из нового проекта), оно падает.
Тег фактически разделен на подклассы из промежуточного класса, сам подкласс от NSManagedObject
, но пропуск этого не помогает.Насколько я вижу, все операторы импорта и т. Д., А также все остальные строки кодирования одинаковы между двумя версиями.У кого-нибудь еще были проблемы такого типа?В какую яму я только что попал?