NSSet
未知の (おそらく多数の) オブジェクトの属性から収集された文字列を作成しようとしています。
私のアプリのユーザーは、月にオブジェクトをログに記録しますNSString *category
。名前だけに関心があるのに、オブジェクトにはさまざまな属性があります。
Object.h
NSString *category
...
1 か月の間に、10 ~ 1000 個のそのようなオブジェクトをログに記録し、コアデータに保存します。ユーザーは独自のカテゴリを定義できます。その月にどのカテゴリが使用されたかを調べる必要があります (エクスポート ファイルを作成するため)。
現在、私は次のことを行っています(疑似コード)
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];
たぶん私は何か間違ったことをしましたが、うまくいきませんでした:/
私が興味を持っているのは、このプロセスを大幅にスピードアップできるソリューションがあるかどうかです。私が見落としていたかもしれない何か。
何か案は?