もし,NSString型の数字を格納している場合は,辞書順でソートされる.
↑blockの中でNSNumber型に変換すれば問題ないかもしれないが,試してはいない.
NSMutableArray *array = [NSMutableArray arrayWithObjects:@"10", @"2", @"4", @"17", @"1", nil];
NSLog(@"%@", array);
// 降順ソート
[array sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {
return [obj2 compare:obj1];
}];
// arrayの要素が文字列の場合,辞書順でソートされる
NSLog(@"%@", array);
array = [NSMutableArray arrayWithObjects:
[NSNumber numberWithInt:10],
[NSNumber numberWithInt:2],
[NSNumber numberWithInt:4],
[NSNumber numberWithInt:17],
[NSNumber numberWithInt:1],nil];
NSLog(@"%@", array);
// 降順ソート
[array sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {
return [obj2 compare:obj1];
}];
// arrayの要素がNSNumberなので,数字の大小でソートされる
NSLog(@"%@", array);
// 昇順ソート
[array sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {
return [obj1 compare:obj2];
}];
NSLog(@"%@", array);
HOMEに戻る