私はplistから情報を取得しているアプリを持っています。 plist
は、キー(author、cat、content)を持つDictionaries
の配列です。 ここでは、カテゴリを表に表示したいと考えています。 したがって、すべての一意のカテゴリエントリがソートされた方法で必要です。配列内の二重項目を削除し、結果をソート
私はうまく実装されていますが、これが「正しい」解決策であれば興味があります。ソートする可能性があるとNSArray
へ
NSSet
置くユニークな要素を取得するためにNSSet
に
- plistの配列を通過し、この
NSMutableArray
を置く辞書 - のすべてのカテゴリ エントリを持つ新しい
NSMutableArray
を作りますそれ。 - リターンソート
NSArray
で開始NSMutableArray
私はこれがそうするの正しい方法であること、ではない感じ。 それを改善するための提案はありますか?
ありがとうございます!
//InhaltefromWEb is a NSMutableArray
-(NSArray*) getCategories {
NSMutableArray* categorieTemp = [[NSMutableArray alloc] init];
unsigned count = [InhalteFromWeb count];
while (count--) {
NSString *tempString;
tempString=[[InhalteFromWeb objectAtIndex:count] objectForKey:CATEGORY];
NSLog(@"tempString %@", tempString);
[categorieTemp addObject:tempString];
}
NSSet *uniqueElements = [NSSet setWithArray:categorieTemp];
NSLog(@"categories from engine %@", categorieTemp);
NSArray* tempAr = [[[NSArray alloc] initWithArray:[uniqueElements allObjects]]sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];
return [NSMutableArray arrayWithArray:tempAr];
}
ええ、それはいいです。あなたのwhileループでカテゴリtempの代わりにNSMutableSetを使用するだけで、それに直接文字列を追加することができます。 – carbonbasednerd
良いヒント:-)ありがとう。私はまだこれらの異なるタイプと可能性を失って、データを保存してから再変換することができます。 :-)ステップバイステップでもっと意味をなさないでしょう... – Ssernengreiferin
まだデータストレージのソリューションとしてCore Dataを読んでおく必要があります。 – carbonbasednerd