Skip to content

NSArrayにNSDictionaryを入れている時のソートはどうする?

2011年7月25日

JSONデータをパースしたときに、Dictionaryに入っているnumberで比較して、順序を降順から昇順に並べ替える必要が出てきた。

だけど、そのソートどうするのってことで調べてみた結果以下のようになりました。

NSSortDescriptor *descriptor=[[[NSSortDescriptor alloc] initWithKey:@"number.intValue" ascending:YES] autorelease];
NSLog(@"Sorted  ::::  %@",[[data sortedArrayUsingDescriptors:[NSArray arrayWithObject:descriptor]] description]);

まずNSSortDescriptorをつくります。そこでDictionaryのキーを指定するんだけど、
ここで、「.intValue」をつけるのがポイント。

JSONからパースされて出てきた数値は全部NSStringなので、テキストとして見られてしまう。だから、intValueをつかって数値として比較してもらう必要があるというわけでした。

広告

From → iPhone開発

コメントする

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。