0

検索バーをテーピングすると、次の例外が発生します。"'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;

OK、ここに修正コードがあります:

            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;
}
4

0 に答える 0