0

数値を含むNSStringを持つNSMutableArrayを並べ替えています。
これは私が使用しているコードです:

//creating mutable array
NSMutableArray *myArray = [NSMutableArray arrayWithObjects:@"4", @"2", @"7", @"8", nil];

//sorting
[myArray sortUsingComparator:^NSComparisonResult(NSString *str1, NSString *str2) {
    return [str1 compare:str2 options:(NSNumericSearch)];
}];

//logging
NSLog(@"%@", myArray);

Xcodeをビルドすると、このコードが次 }];のエラーで強調表示されます。エラーは次のとおりです。
Incompatible block pointer types initializing 'int (^)(struct NSString *, struct NSString *)', expected 'NSComparator'

4

1 に答える 1

0

idNSStringではなく、ブロックの引数タイプとして使用する必要があると思います。AppleのBlocksのShortPracticalGuideには、次のように書かれています。

Foundationフレームワークは、2つの項目を比較するためのNSComparatorタイプを宣言します。

typedef NSComparisonResult (^NSComparator)(id obj1, id obj2);
于 2012-06-26T15:13:36.793 に答える