我有这段代码
var dataFormat: AudioStreamBasicDescription?
var propSize: UInt32 = UInt32(MemoryLayout<AudioStreamBasicDescription>.size)
try SCoreAudioError.check(status: AudioFileGetProperty(audioFileID!, kAudioFilePropertyDataFormat, &propSize, &dataFormat), "Couldn't get file's data format")
变量是somekind被填充,但是llbd调试器将我的变量dataFormat
值显示为nil
(通过用po dataFormat
打印),而变量检查器说这样的变量是不是nil
(它等于some
的内容)
答案 0 :(得分:1)
我找到了解决方案
我必须先将AudioStreamBasicDescription
初始化,然后再将其作为参考
var dataFormat = AudioStreamBasicDescription.init()
我之所以感到困惑,因为看起来像是通过引用传递一个空的可选模式然后被填充的模式在opaque
类型中很常见(我认为)..