indexOfObject:inSortedRange:options:usingComparator返回错误的索引

时间:2015-06-12 07:59:43

标签: objective-c xcode nsarray

我尝试使用以下方法使用二分查找来搜索对象,但结果会产生一些垃圾值。

    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,任何人都可以让我知道我在这里做错了什么。

1 个答案:

答案 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];
    }]);