C'è un modo per trasmettere l'indirizzo di una struct Swift a un unsafeMutablePointer?
Ho provato questo senza successo:Lancia una struttura Swift a UnsafeMutablePointer <Void>
struct TheStruct {
var a:Int = 0
}
var myStruct = TheStruct()
var address = UnsafeMutablePointer<Void>(&myStruct)
Grazie!
EDIT: il contesto
sto effettivamente cercando di porto a Swift il primo esempio in Learning CoreAudio.
Questo è quello che ho fatto fino ad ora:
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)
sto facendo sforzi per rimanere a Swift, ma se questo si rivela essere più un problema che un vantaggio, mi finirà per il collegamento a una funzione C .
EDIT: linea bottome
Se siete venuti a questa domanda, perché si sta tentando di utilizzare AudioQueue di un CoreAudio a Swift ... non lo fanno. (Leggi i commenti relativi dettagli)
Puoi aggiungere alcune informazioni * perché * l'indirizzo è necessario come puntatore vuoto? –
Sicuro! Sto cercando di utilizzare CoreAudio in Swift. Il compilatore si lamenta che gli argomenti passati a AudioQueueNewInput non sono quello che dovrebbero essere, e la struttura passata sembra essere la causa di. – popisar
Dovresti aggiungere ulteriori informazioni e codice alla domanda. Quale funzione esattamente, come si prova a chiamare, l'esatto messaggio di errore ... –