iPhone dev: как вы печатаете результаты из Core Data fetchRequest?

StackOverflow https://stackoverflow.com/questions/1611263

  •  05-07-2019
  •  | 
  •  

Вопрос

Я добавил следующее в 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 выдает мне предупреждение после этого метода: " Управление достигает конца не пустой функции "

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

Это было полезно?

Решение

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top