-sortedArrayUsingFunction:context:
配列内の要素を関数で比較して昇順にソートします
-(NSArray *)sortedArrayUsingFunction:(int (*)(id, id, void *))compare context:(void *)context
解説
配列内の要素を関数で比較して昇順にソートしして、新しい配列を返します。
返される新しい配列には、参照情報が入っていて、元の要素がコピーされている訳ではありません。各要素にはretainメッセ−ジが送信されます。
比較関数は
int intSort(id val1, id val2, void *context)
のような形式で、2つの要素を比較して最初の要素<次の要素の時はNSOrderedAscendingを、最初の要素>次の要素の時はNSOrderedDescendingを、同じ時はNSOrderedSameを返します。
返り値
( NSArray * )
配列(NSArrayまたはそのサブクラス)
引数
( int (*)(id, id, void *) )compare
比較関数
( void * )context
追加情報
フレームワーク
Foundation
クラス
NSArray
Instance Methods
使用可能
10.0
iOS2.0
参照
例文
#pragma mark sortedArrayUsingFunction:context: NSInteger intSort(id val1, id val2, void *context) { int iVal1 = [val1 integerValue]; int iVal2 = [val2 integerValue]; if (iVal1 < iVal2) return NSOrderedAscending; else if (iVal1 > iVal2) return NSOrderedDescending; else return NSOrderedSame; } -(void)method027 { NSArray *anArray =[[NSArray alloc] initWithObjects: [NSNumber numberWithInteger:345], [NSNumber numberWithInteger:1233], [NSNumber numberWithInteger:567], [NSNumber numberWithInteger:912], [NSNumber numberWithInteger:1], nil] ; NSArray *retArr = [anArray sortedArrayUsingFunction:intSort context:NULL]; NSLog(@"%s : %@", __FUNCTION__,[retArr description]); //=>[OOOAppDelegate method027] : (1,345,567,912,1233) }