iPhone dev: как вы распечатываете результаты из Core Data fetchRequest? - PullRequest
0 голосов
/ 23 октября 2009

Я добавил следующее в AppDelegate в примере Core Data Recipes, но я не получил никакого печатного результата в консоли ... какие-нибудь идеи?

#pragma mark -
#pragma mark TESTING RETRIEVAL OF RECIPE NAMES

- (NSArray *)allRecipes{
    NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"name" inManagedObjectContext:self.managedObjectContext];
    [request setEntity:entity];

    NSArray *result = [[NSArray alloc] init];
    result = [self.managedObjectContext executeFetchRequest:request error:NULL];    

    NSManagedObject *firstObject = [result objectAtIndex:0];
    NSLog(@"firstObject.name: %@", [firstObject valueForKey:@"name"]);

    }

XCode выдает мне предупреждение после этого метода: «Управление достигает конца не пустой функции»

Я думаю, это означает, что я не получаю никаких результатов ... что очевидно, потому что ничего не печатает.

1 Ответ

1 голос
/ 23 октября 2009

Точно ли соответствует «имя» классу сущности - НЕ атрибуту, который вы хотите от сущности - в вашем файле .xcdatamodel? Вы проверяете, что в приложении делегат методы установки завершаются без ошибок? Вы проверили для управляемогоObjectContext! = Ноль? Вы редактировали файл .xcdatamodel? Если вы сделали это с момента последнего запуска программы, вам нужно либо удалить файл данных из каталога документов симулятора для вашего приложения, либо добавить версию модели для вашей модели данных.

Как сказал gerry3, ваша первая проблема в том, что функция указывает, что вы должны вернуть массив, и вы ничего не возвращаете.

Другая проблема заключается в том, что вы выбираете атрибуты класса "name", но затем снова используете "name" в качестве valueForKey. У вас действительно есть сущность "имя" с атрибутом "имя"? Скорее всего, ваша сущность названа как-то еще, а name является ее атрибутом - в этом случае вам нужно изменить метод NSEntityDescription entityForName: аргумент.

...