tabellenansicht - nicht erkannter selektor didSelectRowAtIndexPath

Ich habe ein Problem mit meiner App, die beim Auswählen eines Elements in der tableView abstürzt. Dies ist nicht zu 100% reproduzierbar, kommt aber relativ häufig vor.

Was passiert, ist in meiner EventListViewController-Klasse (eine Unterklasse von UITableViewController), ich überschreibe die didSelectRowAtIndexPath-Funktion, weil ich auch in dieser Klasse eine Suchleiste verwende, und ich möchte, dass sie nur auswählt, wenn Sie nicht suchen.

Der Code sieht folgendermaßen aus:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    if(!searching)
        [super tableView:tableView didSelectRowAtIndexPath:indexPath];
}

Wenn es jedoch abstürzt, unterbreche ich eine Ausnahmebedingung und dies ist die Meldung, die ich in der Zeile erhalte, die die Super-Funktion aufruft:

[EventListViewController tableView:didSelectRowAtIndexPath:]: unrecognized selector sent to instance 0xa648e50

Ich habe ein paar Sachen im Debugger ausgedruckt und alles sieht für mich gut aus:

(lldb) po 0xa648e50
(int) $1 = 174362192 <EventListViewController: 0xa648e50>

(lldb) po self
(EventListViewController *) $2 = 0x0a648e50 <EventListViewController: 0xa648e50>

(lldb) po tableView
(UITableView *) $3 = 0x070fd400 <UITableView: 0x70fd400; frame = (0 0; 320 367); clipsToBounds = YES; autoresize = W+H; layer = <CALayer: 0x6e46750>; contentOffset: {-0, -0}>

(lldb) po indexPath
(NSIndexPath *) $4 = 0x06e8caf0 <NSIndexPath 0x6e8caf0> 2 indexes [1, 1]

(Die tableView enthält 2 Abschnitte und der zweite Abschnitt enthält 2 Einträge.)

Hat jemand eine Idee was passiert? Lassen Sie mich wissen, wenn Sie weitere Informationen benötigen.

Hinweis: Nach eingehender Untersuchung habe ich festgestellt, dass dies mit den folgenden Schritten zu 100% reproduzierbar ist: 1: Laden Sie die App und klicken Sie auf einen der beiden Einträge. 2: Kehren Sie zum tableView-Controller zurück. 3: Tippen Sie in dem leeren Bereich, in dem sich keine Zelle befinden sollte, UNTEN auf beide Einträge. Die App stürzt ab. Beachten Sie jedoch, dass der indexPath nicht sagt, dass er versucht, eine Zelle auszuwählen, die diese Zelle enthält liegt außerhalb der Grenzen der tableView, nur dass die tableView-Methode didSelectRowAtIndexPath nicht vorhanden ist

Antworten auf die Frage(1)

Ihre Antwort auf die Frage