Xcode 使用 AVAudioInputNode 为条件绑定抛出初始化器

Xcode throws Initializer for conditional binding using AVAudioInputNode

我正在寻找解决方法 Xcode 并尝试使用 Apple 开发者网站 (link)

上的指南构建一个基本的实时转录应用程序

以下行抛出如下所示的错误:

guard let inputNode = audioEngine.inputNode else { fatalError("Audio engine has no input node") }

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

我检查了每个 Whosebug post 都出现了类似的错误,但没有任何效果。我什至从上面 link 下载了 Apple 的项目,他们的代码没有错误。我将代码从他们的项目复制到我的项目中,以防我在某个地方犯了一个愚蠢的错误,但在我的项目中,完全相同的代码总是抛出异常。

我正在使用 Xcode 9.2,我正在为 iOS 11 开发。

谢谢!

你案例中的 guard 语句是多余的。 inputNode 不是可选的,因此它永远不能保持 nil 值。因此,对此进行保护是多余的,因此会出现错误消息。

您可以省略 guard 语句及其 else 块,将其替换为:

let inputNode = audioEngine.inputNode