访问AVAudioRecorder的meterEnabled会出错

时间:2014-06-10 07:17:54

标签: ios swift avaudiorecorder

我正在尝试使用AVAudioRecorder进行ON测量,但它会出错

Cann't assign to the result of expression

声明:

var recorder : AVAudioRecorder?
..

定义

self.recorder?.meteringEnabled = true // Error here

2 个答案:

答案 0 :(得分:1)

您需要打开self.recorder变量,如下所示:

self.recorder!.meteringEnabled = true

答案 1 :(得分:1)

可选链接不支持设置属性值。它仅用于查询(请参阅:获取)属性和调用方法。

所以代码应该是

if let recorder = self.recorder?{
     recorder.meteringEnabled = true
}

如果对象具有值,则仅设置对象的属性。由于您的ivar很可能被定义为var player: AVAudioPlayer?,因此编译器实际上并不知道它是否具有值。

正如语言指南中所述,Calling Properties Through Optional Chaining部分:

  
    

但是,您无法通过可选链接设置属性值。