条件绑定的初始化程序必须具有Optional类型,而不是'AVAudioInputNode'

时间:2018-03-13 02:54:14

标签: ios swift audio avaudioengine

是什么导致上述错误以及如何解决?

func cancelRecording() {
        audioEngine.stop()
        if let node = audioEngine.inputNode {
            node.removeTap(onBus: 0)
        }
        recognitionTask?.cancel()
    }

1 个答案:

答案 0 :(得分:1)

编译器告诉你不能使用if let,因为它完全没必要。您没有任何打开的选项: audioEngine 不是可选的, inputNode 属性也不是可选的。如果let仅用于打开选项。如果要创建名为 node 的新常量,请执行以下操作:

if let node = audioEngine?.inputNode {
   node.removeTap(onBus: 0)
}