2016-11-14 5 views
1

Я просмотрел все вопросы по этой теме здесь, когда переполнение стека, но я не могу понять, потому что я, кажется, все делаю правильно, все же я получаю эту ошибку , Я пытаюсь реализовать кнопку записи для своего чата, которая записывается до тех пор, пока нажимается кнопка. Я всегда получаю следующее сообщение об ошибке: [HenrysApp.ChatViewController longPress]: непризнанный селектор посланных к экземпляру 0x7f952602dc00Непризнанный селектор отправлен в экземпляр с помощью LongPressGestureRecognizer swift 3

Вот код:

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

Какой класс 'func longPress (longPressGestureRecognizer: UILongPressGestureRecognizer)' объявлен в? – Frankie

ответ

0

Попробуйте сначала заменить т "longPress:" с #selector(longPress(_:)) (первой строкой), который является соглашение об именах

0

Вам нужно изменить

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

с этим

let longPressGestureRecognizer = UILongPressGestureRecognizer(target: self, action: #selector(longPress(_:))) 
0
  • Это может быть потому, что розетка не подключен. Нажмите контроллер вида или любой элемент пользовательского интерфейса в раскадровки, а справа откройте инспектор подключений. Там вы можете найти, правильно ли подключен какой-либо элемент пользовательского интерфейса.