我尝试使用以下方法使用二分查找来搜索对象,但结果会产生一些垃圾值。
NSArray *orderedSet = [[NSArray alloc]initWithObjects:@2,@3,@5,nil];
NSLog(@"%@",orderedSet);
NSLog(@"%lu",(unsigned long)[orderedSet indexOfObject:@3 inSortedRange:NSMakeRange(0, 3) options:NSBinarySearchingFirstEqual usingComparator:^NSComparisonResult(id obj1, id obj2) {
return [obj2 compare:obj1];
}]);
它输出9223372036854775807,任何人都可以让我知道我在这里做错了什么。
答案 0 :(得分:0)
将短距离从(0,3)更改为(0,2)
NSLog(@"%lu",(unsigned long)[orderedSet indexOfObject:@3 inSortedRange:NSMakeRange(0, 2) options:NSBinarySearchingFirstEqual usingComparator:^NSComparisonResult(id obj1, id obj2) {
return [obj2 compare:obj1];
}]);