Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.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 使用AVAudioRecorder&x27;s仪表报错_Ios_Swift_Avaudiorecorder - Fatal编程技术网

Ios 使用AVAudioRecorder&x27;s仪表报错

Ios 使用AVAudioRecorder&x27;s仪表报错,ios,swift,avaudiorecorder,Ios,Swift,Avaudiorecorder,我试图用AVAudioRecorder在仪表上进行,但它给出的错误如下 Cann't assign to the result of expression 声明: var recorder : AVAudioRecorder? .. 定义 self.recorder?.meteringEnabled = true // Error here 您需要像这样打开self.recorder变量: self.recorder!.meteringEnabled = true 可选链接不支持属性值的

我试图用AVAudioRecorder在仪表上进行
,但它给出的错误如下

Cann't assign to the result of expression
声明:

var recorder : AVAudioRecorder?
..
定义

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

您需要像这样打开
self.recorder
变量:

self.recorder!.meteringEnabled = true

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

所以代码应该是

if let recorder = self.recorder?{
     recorder.meteringEnabled = true
}
这将仅在对象具有值时设置对象的属性。由于ivar很可能定义为
var player:AVAudioPlayer?
,编译器实际上不知道它是否有值

如《语言指南》所述,在以下章节中:

但是,不能通过可选链接设置属性的值


这也解决了我的问题。但上面的答案是设置可选值的正确方法+1给你..嗨,你能用Swift录音吗?如果是的话,你能分享完整的例子吗?