Я пытаюсь создать строку из NSSet
строк, собранных из неизвестного (возможно, большого) количества атрибутов объектов.NSSet из атрибутов объектов (производительность)
Пользователь моего приложения регистрирует объекты в течение месяца - у них разные атрибуты, меня интересует только имя NSString *category
.
Object.h
NSString *category
...
В течение месяца он может регистрировать от 10 до 1000 таких объектов, хранящихся в coredata. Пользователь может определить собственные категории - и мне нужно выяснить, какие категории были использованы в течение этого месяца (для создания файла экспорта).
В настоящее время я делаю следующее (псевдокод)
NSArray *allObjects = [_dataHandler fetchAllObjectsForMonth:monthToExport];
NSMutableSet *allCategoryNamesSet = [[NSMutableSet alloc]init];
for(Object *obj in allObjects){
[allCategoryNamesSet addObject:obj.category];
}
Тогда как это работает, он получает очень медленно, с большим количеством объектов, как выборка требует времени и итерации, а также, конечно.
Я пытался что-то подобное, а также:
NSArray *categories = [allObjects valueForKeyPath:@"category"];
NSSet *allCategorieNamesSet = [NSSet initWithArray:categories];
может быть, я сделал что-то неправильно, но оно не совсем работа:/
Что я заинтересован в том, что если есть решение, которое может значительно ускорить этот процесс? что-то, что я мог упустить.
Любые идеи?
есть ли проблема с 'NSMutableSet * allCategoryNamesSet = [NSMutableSet setWithArray: allObjects];'? –
есть. то я получаю набор, состоящий из объектов вместо атрибутов категории объектов. Мне нужен набор всех имен категорий, которые использовались в течение месяца :) –