2016-11-18 80 views
0

這裏是我的代碼:不能INOUT參數傳遞AudioQueueRef到AudioQueueNewOutput斯威夫特

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

我得到了queue變量相關的錯誤:「能不能通過一成不變的值作爲INOUT參數:從「隱式轉換AudioQueueRef '到'AudioQueueRef?'需要暫時的「。 AudioQueueNewOutput要求該參數的類型爲UnsafeMutablePointer<AudioQueueRef?>。我不知道如何實現這種轉換。

有關如何解決此問題的任何想法?謝謝。

回答

2

因爲它說AudioQueueRef必須是inout參數意味着相同的變量會隨時將其值更改爲新的或舊的值。所以,你必須將其定義爲Optional象下面這樣:

var queue: AudioQueueRef? 

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

讓我知道,如果你仍然面臨的任何問題。

+0

修復它。謝謝! –