0
我是新來的swift,我試圖使用具有參數類型UnsafeMutablePointer的ObjC函數。我閱讀了很多關於使用UnsafeMutablePointer或UnsafeMutableRawPointer的文章,但是我仍然無法使它工作。函數是:
func AXUIElementCopyAttributeNames(_ element:AXUIElement,_ names:UnsafeMutablePointer) - > AXError
我甚至發現確切函數的問題,但答案似乎在swift 3中不再有效。下面是一些我試過的東西沒有用。使用帶有UnsafeMutableRawPointer或UnsafeMutablePointer的ObjC函數Swift中的參數?
var ptr : Unmanaged<CFArray>? = nil
AXUIElementCopyAttributeNames(element, &ptr)
var names:CFArray? = nil
AXUIElementCopyAttributeNames(element, UnsafeMutablePointer(names))
var names:CFArray? = nil
AXUIElementCopyAttributeNames(element, UnsafeMutablePointer<CFArray>(Unmanaged.passUnretained(names).toOpaque()))
另外,有沒有一個很好的教程,可以讓我很好地掌握在Swift 3中使用ObjC函數?看起來還有很多apis在迅速失蹤。
非常感謝!
我已經更新http://stackoverflow.com/questions/25124002/how-to-handle-unsafepointerunmanagedcfarray的斯威夫特3 ,這有幫助嗎? –
@Martin R - 完全工作!如果你把它作爲答案發布,我可以接受它。非常感謝! – jl303
@Martin R - 你也許也知道這個答案。你介意看嗎?這與此相關:從CFTypeRef獲取Swift字符串與ObjC函數... http://stackoverflow.com/questions/40784738/ – jl303