6

誰かが私にソートする方法を教えてくれるかどうか疑問に思いましたNSDictionary; キーは日付+時刻であり、に追加できるようにしたいので、最後のエントリから読みたいですNSMutableString。列挙子を使用して読み取ることができましたが、希望する結果が得られません。

ありがとう

4

2 に答える 2

13

要件に合わせて、最も簡単な方法は、キーから新しい配列を作成し、それを並べ替えてから、その配列を使用して元の辞書の項目を参照することです。

(myComparisonは、2つのキーを比較する独自のメソッドであることに注意してください)。

NSMutableArray* tempArray = [NSMutableArray arrayWithArray:[myDict allKeys]]; 
[tempArray sortedArrayUsingSelector:@selector(myComparison:)];

for (Foo* f in tempArray)
{
  Value* val = [myDict objectForKey:f];
}
于 2010-02-13T08:49:27.137 に答える
0

NSDictionary をアルファベット順にソートする非常にコンパクトなものにソートすることに関する StackOverflow に関する他のいくつかの提案をまとめました。「パス」に Plist ファイルがあり、それをメモリにロードしてダンプしたいと考えています。

NSDictionary    *glossary = [NSDictionary dictionaryWithContentsOfFile: path];
NSArray         *array1 = [[glossary allKeys] sortedArrayUsingDescriptors:@[ [NSSortDescriptor  sortDescriptorWithKey:@"" ascending:YES selector:@selector(localizedStandardCompare:)] ]];
for ( int i=0; i<array1.count; i++)
{
    NSString* key = [array1 objectAtIndex:i];
    NSString* value = [glossary objectForKey:key];
    NSLog(@"Key=%@, Value=%@", key, value );
}
于 2013-12-15T20:02:38.893 に答える