Objective c 排序NSMutableArray以错误结束

Objective c 排序NSMutableArray以错误结束,objective-c,nsmutablearray,Objective C,Nsmutablearray,我正在对包含数字的NSString的NSMutableArray进行排序。这是我正在使用的代码: //creating mutable array NSMutableArray *myArray = [NSMutableArray arrayWithObjects:@"4", @"2", @"7", @"8", nil]; //sorting [myArray sortUsingComparator:^NSComparisonResult(NSString *str1, NSString *s

我正在对包含数字的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时,会突出显示这段代码,并显示一个错误:
}]错误是:
不兼容的块指针类型初始化'int(^)(struct NSString*,struct NSString*),应为'NSComparator'
我认为您需要使用
id
作为块的参数类型,而不是NSString。在苹果的广告中,它说:

基础框架声明NSimultor类型,用于比较两个项目:

typedef NSComparisonResult (^NSComparator)(id obj1, id obj2);

与其添加反向器,不如交换比较对象的顺序,因此使用
[str2 compare:str1 options:…]