macOS/iOS API解説

iOS , Mac アプリケーション開発のために使われる主要フレームワークの日本語情報です。2010年代に書かれた内容です。今後更新はありません。

目次

-sortedArrayUsingFunction:context:

INDEX>Foundation>NSArray

配列内の要素を関数で比較して昇順にソートします
-(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

追加情報

クラス

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)
    
}

編集時のバージョン

OS X 10.8
iOS 7.0