2017-12-04 2 views
0

Ich habe eine Methode in Objective-C geschrieben. Es ist so.UIViewController hat kein Mitglied 'Methode'

-(void) onLongPress:(UILongPressGestureRecognizer *) longPressGestureRecognizer { 

Ich möchte diese Methode aus meiner schnellen Datei aufrufen. So habe ich das getan.

var longPressGuestureRecognizer = UILongPressGestureRecognizer(target: metrixUIViewController, action: #selector(metrixUIViewController.onLongPress(longPressGestureRecognizer:))) 

Aber es sagt MetrixUIViewController hat kein Mitglied onLongPress. Wie kann ich das lösen? Bitte hilf mir.

+0

Sie müssen Ihre Methode in der Datei "MetrixUIViewController.h" deklarieren. So: '- (void) onLongPress: (UILongPressGestureRecognizer *) longPressGestureRecognizer;' –

+0

@JimmyJames Aber ich kann es aus einer objective-c-Klasse aufrufen – Randi

+0

Sie müssen es deklarieren, damit Sie Ihre Methode außerhalb Ihrer Klasse zugreifen können. Wenn es nicht deklariert ist, ist Ihre Methode in 'privat', so dass Sie nur von Ihrer Klasse mit 'self' darauf zugreifen können. –

Antwort

1

Überprüfen Sie zuerst Ihre Überbrückungskopfzeile ist es richtig?
Ihre onLongPress Methode wird veröffentlicht. bei unten in .h und .m Datei

ändern deklariert werden

var longPressGuestureRecognizer = UILongPressGestureRecognizer(target: metrixUIViewController, action: #selector(metrixUIViewController.onLongPress(_:))) 
+0

Ich habe das versucht. Immer noch gleich :( – Randi

+0

@Randi check aktualisiert einige Punkte – iPatel

+0

Das funktionierte, wenn ich die Methode in der .h-Datei deklariere. Aber ich verstehe nicht, warum es funktionierte, wenn ich es innerhalb eines Objektiv-c Viewcontroller. Coult Sie bitte erklären? – Randi

2

onLongPress muss in .m Datei geschrieben werden nicht deklariert in .h bitte erklären.

Verwandte Themen