点击我的搜索栏会导致以下异常:"'NSInvalidArgumentException', reason: '-[NSIndexPath isEqualToString:]:unrecognized selector sent to instance 0x1d52d9b0'"
使用模拟器这样做一切正常。但在真实设备上,应用程序崩溃了。
为了进行调试,我在相关视图控制器中的每个方法上放置了一个断点,但在应用程序崩溃之前,在编写之后没有调用任何一个方法。
之后,我尝试从UISearchBarDelegate
协议和UISearchDisplayDelegate
协议实现所有方法。我再次放置了一个断点和一些NSLog
调试输出。
在崩溃之前,只调用- (void)searchDisplayControllerWillBeginSearch:(UISearchDisplayController *)controller
。
知道在哪里看或尝试什么?我不明白为什么在模拟器上没有触发异常。我真的很想知道发生什么事情;)
以下是导致错误的代码:
NSString *labelText;
if ([self.searchDisplayController isActive]) {
if (self.filteredStrings > 0) {
labelText = [self.filteredStrings objectAtIndex:indexPath.row];
}
}
else
{
...
}
cell.textLabel.text = labelText;
好的,这是固定代码:
NSString *labelText;
if ([self.searchDisplayController isActive]) {
if (self.filteredStrings > 0) {
labelText = [self.filteredStrings objectAtIndex:indexPath.row];
cell.textLabel.text = labelText;
}
}
else
{
...
cell.textLabel.text = labelText;
}