2

xcode を 4.5 に更新したところ、iOS アプリの 1 つで、以前は取得できなかったエラーが表示されます。アップデート前は問題ありませんでした。

基本的に、他の無関係なテストに基づいて、並べ替えが必要な配列があります..

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

ありがとう。

4

1 に答える 1

6

戻り値の型を忘れました:

NSArray *sortedArray = [arrayFiles sortedArrayUsingComparator:^NSComparisonResult(id a, id b) {
    < your code>
}];
于 2012-09-23T00:48:05.050 に答える