【发布时间】:2016-11-24 07:22:48
【问题描述】:
我是 swift 新手,我正在尝试使用具有参数类型 UnsafeMutablePointer 的 ObjC 函数。我阅读了很多关于使用 UnsafeMutablePointer 或 UnsafeMutableRawPointer 的帖子,但我仍然无法让它工作。功能是:
func AXUIElementCopyAttributeNames(_ element: AXUIElement, _ names: UnsafeMutablePointer) -> AXError
我什至找到了确切功能的问题,但答案似乎在 swift 3 中不再起作用。以下是我尝试过的一些不起作用的事情。
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 函数?看来swift中还缺少很多api。
非常感谢!
【问题讨论】:
-
我已经为 Swift 3 更新了stackoverflow.com/questions/25124002/…,这有帮助吗?
-
@Martin R - 这完全有效!如果您将其发布为答案,我可以接受。非常感谢!
-
@Martin R - 你可能也知道这个问题的答案。你介意看看吗?这与此有关:使用 ObjC 函数从 CFTypeRef 获取 Swift String...stackoverflow.com/questions/40784738
标签: objective-c swift swift3