Базовые данные fetchedResultsController error 'Запрос на выборку должен иметь сущность' entityForName возвращает nil - PullRequest
0 голосов
/ 25 февраля 2011

Привет, я установил собственное приложение coredata, или я попытался ...
Сначала я создал xdatamodel и сгенерировал классы моделей, после чего я реализовал все функции основных данных в AppDelegate, которые я нашел в сгенерированном проекте. Наконец, я скопировал fetchedResultsController в мой TableViewController.
fetchedResultsController

- (NSFetchedResultsController *)fetchedResultsController {

if (fetchedResultsController_ != nil) {
    return fetchedResultsController_;
}

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];

NSEntityDescription *entity = [NSEntityDescription entityForName:@"ParameterGroup" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];

[fetchRequest setFetchBatchSize:20];

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:NO];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];

[fetchRequest setSortDescriptors:sortDescriptors];

NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:nil cacheName:@"Root"];
aFetchedResultsController.delegate = self;
self.fetchedResultsController = aFetchedResultsController;

[aFetchedResultsController release];
[fetchRequest release];
[sortDescriptor release];
[sortDescriptors release];

NSError *error = nil;
if (![fetchedResultsController_ performFetch:&error]) {

    NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
    abort();
}

return fetchedResultsController_;
}    

Сначала я проверил, является ли managedObjectsController! = Nil, у него есть адрес
Затем я скопировал EntityName из моего xdatamodel в entityForName,
но сущность NSEntityDescricption равна нулю.

И если я просто создаю новый объект, исключение говорит, что сущность не существует

Нужно ли подключать xdatamodel к моему проекту? Надеюсь, вы можете помочь мне
Большое спасибо !!!

Ответы [ 2 ]

3 голосов
/ 25 февраля 2011

Наиболее распространенной причиной этой проблемы является просто неправильное написание имени объекта в коде так, что оно не соответствует имени объекта в модели данных.

Скопируйте и вставьте имя объекта из модели в код и посмотрите, решит ли это проблему.

1 голос
/ 25 февраля 2011

Самый простой способ решить эту проблему, учитывая, что вы не много программировали для частей неосновных данных, - это, вероятно, создать новый проект, в котором вы установите флажок «Использовать базовые данные».Если вы собираетесь использовать панель навигации, выберите ее в качестве шаблона.Если я правильно помню, это сгенерирует табличное представление со всеми необходимыми функциями.Вам придется изменить модель данных (сгенерированную).

Обратите внимание, что вам придется удалить приложение из симулятора, если оно установлено, и вы измените модель данных (иначе сгенерированные данные не будут соответствоватьмодель данных и приложение вылетят)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...