Базовые данные NSFetchedResultsController не может вернуть класс подкласса - PullRequest
0 голосов
/ 20 июля 2011

Я получаю странную ошибку при использовании 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, но пропуск этого не помогает.Насколько я вижу, все операторы импорта и т. Д., А также все остальные строки кодирования одинаковы между двумя версиями.У кого-нибудь еще были проблемы такого типа?В какую яму я только что попал?

...