条件绑定的初始化器必须是 Optional 类型,而不是 'AVAudioInputNode'

Initializer for conditional binding must have Optional type, not 'AVAudioInputNode'

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

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

编译器告诉您不能使用 if let,因为它完全没有必要。您没有任何可选项要解包:audioEngine 不是可选的,inputNode 属性 也不是可选的。 if let 专门用于解包可选值。如果你想创建一个名为 node 的新常量,就这样做:

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