Возникает исключение, когда я ввожу более двух символов в поле поиска. Я использую NSComparisonResult для отображения результатов в UITableView:
- (void)filterContentForSearchText:(NSString*)searchText
{
for (mystring in self.array)
{
NSComparisonResult result = [mystring compare:searchText options:(NSCaseInsensitiveSearch)
range:NSMakeRange(0, [searchText length])];
if (result == NSOrderedSame)
{
NSUInteger index=[self.array indexOfObjectIdenticalTo:mystring];
NSUInteger maxindex = index + 50;
for (index ; (index < [self.array count] && index <= maxindex && index!= NSNotFound); index ++)
{
[self.filteredListContent addObject:[NSDictionary dictionaryWithObjectsAndKeys:[self.array objectAtIndex:index],@"english",[self.secondarray objectAtIndex:index],@"translated",nil]];
}
break;
}
}
Вывод показывает:
-[UIDeviceWhiteColor compare:options:range:]: unrecognized selector sent to instance 0x5e4a5d0
2011-11-06 12:10:51.932 XXX[2583:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIDeviceWhiteColor compare:options:range:]: unrecognized selector sent to instance 0x5e4a5d0'
Что означает UIDeviceWhiteColor в этом случае?
self.array = [[NSArray alloc] initWithArray:
[[NSString stringWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"first" ofType:@"txt"]
encoding:NSUTF8StringEncoding error:NULL] componentsSeparatedByString:@"\n"]];
self.secondarray = [[NSArray alloc] initWithArray:
[[NSString stringWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"second" ofType:@"txt"]
encoding:NSUTF8StringEncoding error:NULL] componentsSeparatedByString:@"\n"]];