Основные данные SubEntitiesByName при поиске объекта с использованием атрибута - PullRequest
4 голосов
/ 16 декабря 2011

Я пытаюсь получить объект из основных данных в зависимости от атрибута, называемого «имя».Вот мой код:

NSManagedObjectContext *context = [self managedObjectContext];



    NSEntityDescription *vegetable = [NSEntityDescription insertNewObjectForEntityForName:@"Vegetable" inManagedObjectContext:context];

    // get the vegetable using name

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

    NSPredicate *predicate =
    [NSPredicate predicateWithFormat:@"name == %@", myGardenViewModel.vegetable.name];

    [request setEntity:vegetable];
    [request setPredicate:predicate];

    NSError *error; 

    NSArray *fetchedObjects = [self.managedObjectContext executeFetchRequest:request error:&error];

В последней строке выдается следующее исключение:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Vegetable subentitiesByName]: unrecognized selector sent to instance 0x6bbcdd0'

есть идеи?

1 Ответ

7 голосов
/ 16 декабря 2011

Проблема заключается в способе установки свойства entity вашего NSFetchRequest. С insertNewObjectForEntity: вы фактически создаете новый объект для последующей вставки в базу данных с [managedObjectContext save:&error];.

То, что вы хотите сделать, это просто установить сущность для вашего запроса на выборку, а не вставлять новый объект:

NSEntityDescription *vegetable = [NSEntityDescription entityForName:@"Location" 
   inManagedObjectContext:self.managedObjectContext];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...