Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用LongPressGestureRecognitor swift 3将无法识别的选择器发送到实例_Ios_Swift_Uibutton_Uilongpressgesturerecogni - Fatal编程技术网

Ios 使用LongPressGestureRecognitor swift 3将无法识别的选择器发送到实例

Ios 使用LongPressGestureRecognitor swift 3将无法识别的选择器发送到实例,ios,swift,uibutton,uilongpressgesturerecogni,Ios,Swift,Uibutton,Uilongpressgesturerecogni,我在stack overflow上搜索了关于这个主题的所有问题,但我似乎无法找到答案,因为我似乎做的每件事都是对的,但我仍然得到了这个错误。 我正在尝试为我的聊天实现一个录制按钮,只要按下该按钮,它就会录制。我总是遇到以下错误: [HenrysApp.ChatViewController longPress:]:发送到实例0x7f952602dc00的选择器无法识别 代码如下: let longPressGestureRecognizer = UILongPressGestureRecogniz

我在stack overflow上搜索了关于这个主题的所有问题,但我似乎无法找到答案,因为我似乎做的每件事都是对的,但我仍然得到了这个错误。 我正在尝试为我的聊天实现一个录制按钮,只要按下该按钮,它就会录制。我总是遇到以下错误: [HenrysApp.ChatViewController longPress:]:发送到实例0x7f952602dc00的选择器无法识别

代码如下:

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()
    }
}
首先尝试将
“longPress:”
替换为
#选择器(longPress(:)
(第一行),这是新的命名约定

尝试将
“longPress:”
替换为
#选择器(longPress(:)
(第一行),这是新的命名约定

您需要更改

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

let longPressGestureRecognizer = UILongPressGestureRecognizer(target: self, action: #selector(longPress(_:)))
你需要改变

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

let longPressGestureRecognizer = UILongPressGestureRecognizer(target: self, action: #selector(longPress(_:)))
  • 可能是因为插座连接不正确。单击视图控制器或序列图像板中的任何UI元素,然后打开右侧的连接检查器。在那里,您可能会发现任何UI元素是否正确连接
      • 可能是因为插座连接不正确。单击视图控制器或序列图像板中的任何UI元素,然后打开右侧的连接检查器。在那里,您可能会发现任何UI元素是否正确连接
      在中声明的
      func longPress(longpressgesturecognizer:uilongpressgesturecognizer)
      是什么类?在中声明的
      func longPress(longpressgesturecognizer:uilongpressgesturecognizer)
      是什么类?