无法将AudioQueueRef inout参数传递给Swift中的AudioQueueNewOutput

时间:2016-11-18 05:02:21

标签: ios swift3 core-audio

这是我的代码:

var queue: AudioQueueRef
error = AudioQueueNewOutput(&dataFormat, 
AQOutputCallback, 
&player, 
nil, 
nil, 
0, 
&queue) // This gives me an error

我收到与queue变量相关的错误:“无法将不可变值作为inout参数传递:从'AudioQueueRef'到'AudioQueueRef'的隐式转换?'需要一个临时的“。 AudioQueueNewOutput要求该参数的类型为UnsafeMutablePointer<AudioQueueRef?>。我不知道如何实现这种转换。

有关如何解决此问题的任何想法?谢谢。

1 个答案:

答案 0 :(得分:2)

因为它说AudioQueueRef必须是inout参数意味着同一个变量会随时改变它的值到新的或旧的。因此,您必须将其定义为Optional,如下所示:

var queue: AudioQueueRef? 

var error = AudioQueueNewOutput(&dataFormat, 
AQOutputCallback, 
&player, 
nil, 
nil, 
0, 
&queue)

如果您仍然遇到任何问题,请告诉我。