Gibt es eine Möglichkeit, die Adresse einer Swift-Struktur in einen ungültigen UnsafeMutablePointer zu konvertieren?
Ich habe versucht, dies ohne Erfolg:Umwandeln einer Swift-Struktur in UnsafeMutablePointer <Void>
struct TheStruct {
var a:Int = 0
}
var myStruct = TheStruct()
var address = UnsafeMutablePointer<Void>(&myStruct)
Dank!
EDIT: der Kontext
Ich versuche tatsächlich in den Hafen Swift das erste Beispiel in Learning CoreAudio-.
Dies ist, was ich bisher getan habe:
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)
Ich Anstrengungen mache in Swift zu bleiben, aber wenn dies ein Problem ist als ein Vorteil mehr erweist, werde ich zu einer C-Funktion am Ende Verknüpfung .
EDIT: bottome Linie
Wenn Sie auf diese Frage kam, weil Sie versuchen, eine CoreAudio- des Audioqueue in Swift verwenden ... nicht. (Lesen Sie die Kommentare für Details)
Können Sie einige Informationen hinzufügen * warum * die Adresse als Void-Zeiger benötigt wird? –
Sicher! Ich versuche CoreAudio in Swift zu verwenden. Der Compiler beschwert sich, dass die an AudioQueueNewInput übergebenen Argumente nicht das sind, was sie sein sollten, und die Struktur als die Ursache davon übergeben wird. – popisar
Sie sollten der Frage weitere Informationen und Code hinzufügen. Welche Funktion genau, wie versuchst du es zu nennen, die genaue Fehlermeldung ... –