【发布时间】:2017-11-25 14:44:38
【问题描述】:
我有这个 Objective-C 代码片段,我想用 Swift 来表达
CFArrayRef windowList;
AXUIElementCopyAttributeValue(appRef, kAXWindowsAttribute, (CFTypeRef *)&windowList);
if ((!windowList) || CFArrayGetCount(windowList)<1)
continue;
AXUIElementRef windowRef = (AXUIElementRef) CFArrayGetValueAtIndex( windowList, 0);
CFTypeRef role;
AXUIElementCopyAttributeValue(windowRef, kAXRoleAttribute, (CFTypeRef *)&role);
我不确定的第一件事是:谁在 windowListPointer 后面分配内存。 我试过这个片段:
var windowListPointer : UnsafeMutablePointer<Optional<AnyObject>>
AXUIElementCopyAttributeValue(appRef, kAXWindowsAttribute as CFString, windowListPointer );
但这甚至没有编译:它抱怨,windowListPointer 没有初始化。 我可以创建什么对象,让 WindowListPointer 指向?
【问题讨论】:
-
@MartinR TNT,如示例中的
var windowList : CFArray?AXUIElementCopyAttributeValue(appRef, kAXWindowsAttribute as CFString, &windowList )也无法编译:无法传递“CFTypeRef”类型的不可变值? (aka 'Optional') as inout
标签: objective-c swift pointers