在下面的代码中,测试为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所以我不确定为什么会导致这个问题...... 任何人都知道什么是最重要的? 谢谢!