2012年12月16日日曜日

NSDictionaryの特定のキーでソートしちゃる

どうも、俺@まだ勉強中です。

例えばNSArray(またはNSMutableArray)内にNSDictionaryが複数入っているとして、そのNSArrayをNSDictionaryのとあるキーでソートしたい場合。

NSArray *array = [NSArray arrayWithObjects:@[
        @{@"id":@100, @"name":@"bob"},
        @{@"id":@14,  @"name":@"ken"},
        @{@"id":@531, @"name":@"john"},
        @{@"id":@32,  @"name":@"mike"},
        @{@"id":@65,  @"name":@"kozy"},
        @{@"id":@174, @"name":@"shorn"},
        @{@"id":@7,   @"name":@"scott"},
        @{@"id":@865, @"name":@"mikeal"},
        @{@"id":@31,  @"name":@"fun"}
    ]];
このarrayを格納しているNSDictionaryのキー:idでソートしちゃりたい!場合は、
// NSSortDescriptorを生成して
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"id" ascending:YES];
// 配列に入れておいて
NSArray *sortarray = [NSArray arrayWithObject:sortDescriptor];
// ソートしちゃる!
NSArray *resultarray = [array sortedArrayUsingDescriptors:sortarray];
// 不要なオブジェクトは解放しちゃる
[sortDescriptor release];
これでキー:idの値でソートされます。


以上でぇぇえぇぇぇえぇす。

0 件のコメント: