Вы пытаетесь использовать Базовые данные как процедурную базу данных, а не как диспетчер графов объектов, как предполагалось API, поэтому вы не найдете простого способа сделать это.
Нет прямого способа сделать это в Базовых данных, потому что Базовые данные связаны с объектами, а не со значениями. Поскольку управляемые объекты гарантированно являются уникальными, базовые данные не очень заботятся о значениях каждого объекта или о том, являются ли они дубликатами или значениями некоторых других объектов.
Чтобы найти уникальные значения:
- Выполнить выборку по определенному значению . Это даст вам массив словарей с ключом
name
и значением самой строки имени.
- Для возвращенного массива в (1) используйте оператор набора множеств для возврата набора уникальных значений.
Итак, что-то вроде:
NSSet *uniqueNames=[fetchedNameDicts valueForKeyPath:@"@distinctUnionOfSets.name"];
... который вернет набор объектов NSString с уникальным значением.