刚刚将xcode更新为4.5,我在我的一个iOS应用程序中收到错误,这是我以前没有得到的。在更新之前没有发生问题。
基本上,我有一个需要排序的数组,基于其他一些不相关的测试..
NSArray *sortedArray = [arrayFiles sortedArrayUsingComparator:^(id a, id b) {
NSString *first = [(PPFile*)a name];
NSString *second = [(PPFile*)b name];
if ([a isFileAvailableForRead] && ![b isFileAvailableForRead]) {
return NSOrderedAscending;
}else if(![a isFileAvailableForRead] && [b isFileAvailableForRead]) {
return NSOrderedDescending;
}
return [first compare:second];
}];
错误发生在块的最后一次返回:
Return type 'NSComparisonResult' (aka 'enum NSComparisonResult') must match previous type 'NSInteger' (aka 'int') when block literal has unspecified explicit return type
感谢。
答案 0 :(得分:6)
您忘记了返回值类型:
NSArray *sortedArray = [arrayFiles sortedArrayUsingComparator:^NSComparisonResult(id a, id b) {
< your code>
}];