uilongpressgesturerecognizer stürzt ab, auch wenn es nicht implementiert ist

Ich habe jede mögliche Suche versucht, aber in einer Woche nichts Vergleichbares gefunden. Ich erstelle eine Anwendung, die eine Tabellenansicht anzeigt. Zellen (von einer benutzerdefinierten Klasse und mit Interface Builder erstellt) können mit einem UIPanGestureRecognizer gezogen werden, der sich in der Klasse der Zelle befindet. Alles funktioniert gut, außer dass die App mit den folgenden Fehlern abstürzt, wenn ich den Finger auf eine Zelle drücke:

-[UILongPressGestureRecognizer translationInView:]: unrecognized selector sent to instance 0x94670a0
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UILongPressGestureRecognizer translationInView:]: unrecognized selector sent to instance 0x94670a0'

Ich weiß, was es bedeutet (normalerweise wird ein falscher Parameter an eine Instanz gesendet), aber ich weiß wirklich nicht, wie dies möglich ist, da mein Code keine Spur eines UILongPressGestureRecognizer enthält. Ich habe versucht, den LongPressGestureREcognizer ÜBERALL abzufangen (in der Zellklasse, in der Klasse der Tabellenansicht, vor der Zuweisung jeder Zelle), aber der Fehler ist immer noch derselbe (ich habe hier im Betreff viele Threads angeschaut und vertraue mir, die Syntax war richtig.

Wenn Sie weitere Unterlagen wünschen, können Sie diese gerne anfordern (es ist mein erster Beitrag hier, ich weiß nicht genau, was ich zeigen muss).

Vielen Dank für Ihre wertvolle Hilfe.

Ok, das Problem ist immer noch da. Entschuldigung :( Ich habe es irgendwie geschafft, einen Haltepunkt zu setzen und den Stack-Trace auszudrucken. Hier ist es:

0   uBellow                             0x0000ac57 -[OpinionCell gestureRecognizerShouldBegin:] + 71
1   UIKit                               0x00914939 -[UIGestureRecognizer _shouldBegin] + 1334
2   UIKit                               0x0091181a -[UIGestureRecognizer setState:] + 152
3   UIKit                               0x00921cea -[UILongPressGestureRecognizer enoughTimeElapsed:] + 127
4   libobjc.A.dylib                     0x017186b0 -[NSObject performSelector:withObject:] + 70
5   UIKit                               0x00787954 -[UIDelayedAction timerFired:] + 83
6   Foundation                          0x0114d2c0 __NSFireTimer + 97
7   CoreFoundation                      0x01bce376 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 22
8   CoreFoundation                      0x01bcde06 __CFRunLoopDoTimer + 534
9   CoreFoundation                      0x01bb5a82 __CFRunLoopRun + 1810
10  CoreFoundation                      0x01bb4f44 CFRunLoopRunSpecific + 276
11  CoreFoundation                      0x01bb4e1b CFRunLoopRunInMode + 123
12  GraphicsServices                    0x022337e3 GSEventRunModal + 88
13  GraphicsServices                    0x02233668 GSEventRun + 104
14  UIKit                               0x00648ffc UIApplicationMain + 1211
15  uBellow                             0x0000287d main + 141
16  uBellow                             0x000027a5 start + 53

Die App blockiert den Code:

-(BOOL)gestureRecognizerShouldBegin:(UIPanGestureRecognizer *)gestureRecognizer {
CGPoint translation = [gestureRecognizer translationInView:[self superview]];

edit Ich habe es gelöst, indem ich UILongPressGestureRecognizer abgefangen habe. Ist das ein sicherer Weg?

-(BOOL)gestureRecognizerShouldBegin:(UIPanGestureRecognizer *)gestureRecognizer {
if([gestureRecognizer isKindOfClass:[UILongPressGestureRecognizer class]]){
    return NO;
}else{
CGPoint translation = [gestureRecognizer translationInView:[self superview]];
// Check for horizontal gesture
if (fabsf(translation.x) > fabsf(translation.y)){
    return YES;
}
}
return NO;}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage