पर एक स्विफ्ट स्ट्रक्चर कास्ट करें क्या एक स्विफ्ट स्ट्रक्चर का पता एक शून्य UnsafeMutablePointer पर डालने का कोई तरीका है?
मैं सफलता के बिना इस की कोशिश की:UnsafeMutablePointer <Void>
struct TheStruct {
var a:Int = 0
}
var myStruct = TheStruct()
var address = UnsafeMutablePointer<Void>(&myStruct)
धन्यवाद!
संपादित करें: संदर्भ
मैं वास्तव में पहला उदाहरण स्विफ्ट के लिए बंदरगाह के लिए कोशिश कर रहा हूँ लर्निंग 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)
मैं स्विफ्ट में रहने के लिए प्रयासों को कर रहा हूँ, लेकिन अगर यह पता चला है और अधिक एक फायदा तुलना में एक समस्या हो, मैं एक सी समारोह को जोड़ने खत्म हो जाएगा ।
संपादित करें: bottome लाइन
आप इस प्रश्न के लिए आया था क्योंकि आप स्विफ्ट में एक CoreAudio के AudioQueue उपयोग करने के लिए कोशिश कर रहे हैं ... नहीं है। ,
var myStruct = TheStruct()
var address = withUnsafeMutablePointer(&myStruct) {UnsafeMutablePointer<Void>($0)}
लेकिन क्यों आप इस की जरूरत है:
क्या आप कुछ जानकारी जोड़ सकते हैं * क्यों * एक शून्य सूचक के रूप में पता आवश्यक है? –
ज़रूर! मैं स्विफ्ट में कोरऑडियो का उपयोग करने की कोशिश कर रहा हूं। संकलक शिकायत करता है कि AudioQueueNewInput पर दिए गए तर्क वे नहीं हैं, और पारित संरचना उस कारण का कारण बनती है। – popisar
आपको प्रश्न में अधिक जानकारी और कोड जोड़ना चाहिए। वास्तव में कौन सा फ़ंक्शन, आप इसे कॉल करने का प्रयास कैसे करते हैं, सटीक त्रुटि संदेश ... –