Извлечение строк (или других переменных) из запроса на выборку CoreData? - PullRequest
0 голосов
/ 25 марта 2012

У меня есть настройка Core Data в моем приложении, и мне нужно выбрать несколько элементов, а затем получить доступ к свойствам, которые я выбираю для этих выбранных элементов. Я могу успешно получить несколько результатов, как это:

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
        NSEntityDescription *entity = [NSEntityDescription entityForName:@"TableInfo" inManagedObjectContext:managedObjectContext];
        [fetchRequest setEntity:entity];

        NSError *error = nil;
        NSArray *result = [managedObjectContext executeFetchRequest:fetchRequest error:&error];

Это дает мне массив с моими результатами, отлично. Теперь из этого, например, как я могу получить свойство 'name' из этих результатов? В этом конкретном случае я хочу загрузить массив со всеми полученными в результате строками имен.

Ответы [ 2 ]

1 голос
/ 25 марта 2012

Если я правильно прочитал ваш вопрос, вы можете без проблем получить NSManagedObjects, но хотели бы получить еще NSArray со name свойствами для этих управляемых объектов?

Тогда вы можетеиспользуйте valueForKeyPath на NSArray (расширяя исходный код):

NSArray *names = [result valueForKeyPath:@"name"];
1 голос
/ 25 марта 2012

Вы можете использовать ключ-значение:

for (NSManagedObject *fetchedResult in result) {
    NSLog(@"name = %@", [fetchedResult valueForKey:@"name"]);
}

или если вы создали свой собственный NSManagedObject:

for (EntityObject *fetchedResult in result) {
    NSLog(@"name = %@", [fetchedResult name]);
}
...