Objective c 排序NSMutableArray以错误结束
我正在对包含数字的NSString的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
这是我正在使用的代码:
//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:…]
。