我的设备(iPhone iOS 4.3)上有奇怪的 NSRange 行为。此代码在设备和模拟器上具有不同的行为。
for (Location *location in locationArray)
{
NSRange range1 = [location.name rangeOfString:searchText options:NSCaseInsensitiveSearch];
NSRange range2 = [location.streetAddress rangeOfString:searchText options:NSCaseInsensitiveSearch];
NSRange range3 = [location.postalCode rangeOfString:searchText options:NSCaseInsensitiveSearch];
if (range.length1 > 0 | range2.length > 0 | range3.length > 0)
[self.filteredList addObject:location];
}
如果某些属性具有 nil 值 range.lenght 在设备上等于 2,在模拟器中等于 0。
难道我做错了什么?