デバイス (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.length は、デバイスでは 2、シミュレータでは 0 になります。
私は何か間違ったことをしていますか?