有没有办法将 Swift 结构的地址转换为 void UnsafeMutablePointer?
我试过这个没有成功:
struct TheStruct {
var a:Int = 0
}
var myStruct = TheStruct()
var address = UnsafeMutablePointer<Void>(&myStruct)
谢谢!
编辑:我实际上试图移植到 Swift的上下文是Learning CoreAudio中的第一个示例。
这是我到目前为止所做的:
func myAQInputCallback(inUserData:UnsafeMutablePointer<Void>,
inQueue:AudioQueueRef,
inBuffer:AudioQueueBufferRef,
inStartTime:UnsafePointer<AudioTimeStamp>,
inNumPackets:UInt32,
inPacketDesc:UnsafePointer<AudioStreamPacketDescription>)
{ }
struct MyRecorder {
var recordFile: AudioFileID = AudioFileID()
var recordPacket: Int64 = 0
var running: Boolean = 0
}
var queue:AudioQueueRef = AudioQueueRef()
AudioQueueNewInput(&asbd,
myAQInputCallback,
&recorder, // <- this is where I *think* a void pointer is demanded
nil,
nil,
UInt32(0),
&queue)
我正在努力留在 Swift 中,但如果结果证明这是一个问题而不是优势,我最终将链接到一个 C 函数。
编辑:底线
如果您因为试图在 Swift 中使用 CoreAudio 的 AudioQueue 而遇到这个问题......不要。(详细阅读评论)