带有非托管字符串的CFDictionary?

时间:2016-04-16 20:35:49

标签: swift accessibility

我试图在OS X中提示辅助功能,但常量是一种奇怪的格式,并且不知道如何使其工作。

 var options: [String:String] = [:]
 options[kAXTrustedCheckOptionPrompt] = "YES"
 print(AXIsProcessTrustedWithOptions(options))

由于类型冲突,第二行显然是错误的。如何将密钥作为该类型或以何种方式将其用于请求方法调用?

1 个答案:

答案 0 :(得分:4)

你正在传递字符串"是"当你的意思是传递一个布尔值。你不能这样做。由于这是我们唯一通过的价值,我们可以让Swift从[String: Bool]为我们做所有神奇的桥接。

import Foundation
import ApplicationServices

var options: [String: Bool] = [:]
options[kAXTrustedCheckOptionPrompt.takeUnretainedValue() as String] = true
print(AXIsProcessTrustedWithOptions(options))