次のコード ブロックがあるとします。
[allKeys sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {
NSDictionary *firstArticle = [articles objectForKey:(NSString *)obj1];
NSNumber *firstSortID = [firstArticle objectForKey:@"sort_id"];
NSDictionary *secondArticle = [articles objectForKey:(NSString *)obj2];
NSNumber *secondSortID = [secondArticle objectForKey:@"sort_id"];
if (firstSortID == nil || secondSortID == nil) {
return nil;
}
else {
return [secondSortID compare:firstSortID];
}
}];
警告が表示されます:
結果型が「NSComparisonResult」(別名「enum NSComparisonResult」) の関数から「void *」を返す整数変換への互換性のないポインター
しかし、基本的に、そのうちの 1 つが nil の場合、比較が意味をなさないためにクラッシュします。nil の場合は気にせずに停止することをどのように伝えればよいでしょうか。