2016-11-14 3 views
1

Ich habe alle Fragen zu diesem Thema hier auf Stack-Überlauf durchsucht, aber ich kann nicht scheinen, es herauszufinden, da ich alles richtig zu tun scheinen, immer noch bekomme ich diesen Fehler . Ich versuche eine Aufnahmeschaltfläche für meinen Chat zu implementieren, die so lange aufzeichnet, wie die Taste gedrückt wird. Ich bekomme immer folgende Fehlermeldung: [HenrysApp.ChatViewController Longpress:]: Unbekannter Selektor an Instanz gesendet 0x7f952602dc00Unerkannter Selektor gesendet zu Instanz mit LongPressGestureRecognizer swift 3

Hier ist der Code:

let longPressGestureRecognizer = UILongPressGestureRecognizer(target: self, action: "longPress:") 
    longPressGestureRecognizer.minimumPressDuration = 1 


    self.recordingSession = AVAudioSession.sharedInstance() 

    do { 
     try self.recordingSession.setCategory(AVAudioSessionCategoryPlayAndRecord) 
     try self.recordingSession.setActive(true) 
     self.recordingSession.requestRecordPermission() { [unowned self] allowed in 
      DispatchQueue.main.async { 
       if allowed { 
        self.record_button.addGestureRecognizer(longPressGestureRecognizer) 
       } else { 
        // failed to record! 
       } 
      } 
     } 
    } catch { 
     // failed to record! 
    } 


// Gesture Recognizer for the Record Button, so as long as it is pressed, record! 
func longPress(longPressGestureRecognizer: UILongPressGestureRecognizer){ 
    if longPressGestureRecognizer.state == .began { 
     print("long press began") 
     let recordingTapImage = UIImage(named: "ic_mic_none_white") 
     record_button.setImage(recordingTapImage, for: .normal) 
     self.recording() 
    } 
    if longPressGestureRecognizer.state == .ended { 
     print("long press ended") 
     let recordImage = UIImage(named: "ic_mic_white") 
     record_button.setImage(recordImage, for: .normal) 
     self.recordTapRelease() 
    } 
} 
+0

In welcher Klasse wird 'func longPress (longPressGestureRecognizer: UILongPressGestureRecognizer) 'deklariert? – Frankie

Antwort

0

Versuchen t erste "longPress:" ersetzen mit #selector(longPress(_:)) (erste Zeile), die die neue Namenskonvention

0

Sie brauchen, ist

let longPressGestureRecognizer = UILongPressGestureRecognizer(target: self, action: "longPress:") 
ändern

mit diesem

let longPressGestureRecognizer = UILongPressGestureRecognizer(target: self, action: #selector(longPress(_:))) 
0
  • es sein könnte, weil der Ausgang nicht richtig angeschlossen werden. Klicken Sie in Storyboards auf den Ansichtscontroller oder ein beliebiges Benutzeroberflächenelement und öffnen Sie auf der rechten Seite den Verbindungsinspektor. Dort können Sie feststellen, ob ein UI-Element korrekt verbunden ist oder nicht.
Verwandte Themen