NSString的二进制搜索数组不起作用?

时间:2017-04-14 18:35:55

标签: objective-c nsstring binary-search

在下面的代码中,测试为0表示NSOrderedSame,test2为YES 但是,下面的搜索功能返回NO。 怎么会这样? 我唯一能想到的是searchString是一个NSString,但该数组包含NSCFStrings。

int test = [[sortedArray objectAtIndex:23] compare: searchString];
BOOL test2 = [((NSString*)[sortedArray objectAtIndex:23]) isEqualToString:searchString];

NSRange searchRange = NSMakeRange(0, [sortedArray count]);
NSUInteger findIndex = [sortedArray indexOfObject:searchString
                                    inSortedRange:searchRange
                                          options:NSBinarySearchingFirstEqual
                                  usingComparator:^(id obj1, id obj2)
                        {
                            return [obj1 compare:obj2];
                        }];
if (findIndex == NSNotFound) {
    return NO;
}
else {
    return YES;
}

我读到NSCFStrings是NSStrings所以我不确定为什么会导致这个问题...... 任何人都知道什么是最重要的? 谢谢!

0 个答案:

没有答案