извлечение всех значений в данном поле сущности CoreData путем передачи другого значения поля в качестве критерия - PullRequest
0 голосов
/ 05 декабря 2011

У меня есть сущность CoreData:

A {
 prop1
 prop2
}

Мне нужно создать простую выборку для извлечения всех prop1 NSManagedObject, у которого prop2 заданного значения.

Это легко объяснить с помощью оператора SQL.

SELECT A.prop1 WHERE A.prop2=<value>

Вот и все, только все значения без отдельного предложения. До сих пор я обнаружил, что единственный способ достичь этого - получить все объекты с NSPredicate:

NSPredicate *allProps = [NSPredicate predicateWithFormat:@"prop1 == %@",prop];

Дело в том, что я хочу только NSArray из prop2, а не полный набор сущностей для итерации. Я надеялся, что NSExpression может дать мне возможность сделать это, но я не могу найти способ. Есть ли у вас какие-либо предложения?

1 Ответ

0 голосов
/ 05 декабря 2011

Я не совсем понял последнюю часть вашего вопроса.Я полагаю, что то, что вы хотите, может быть достигнуто с помощью следующего кода

[request setEntity:[NSEntityDescription entityForName:@"A" inManagedObjectContext:context]];
[request setPropertiesToFetch:[NSArray arrayWithObject:@"prop1"]];
[request setPredicate:[NSPredicate predicateWithFormat:@"prop2==%@",prop]];
[request setResultType:NSDictionaryResultType];

Конечно, вам придется установить дескрипторы сортировки и все, но это должно сработать.

...