我尝试更新Mac的代理设置。 SCDynamicStoreSetValue:
返回false,表示更新失败。这是我使用的代码。正确的方法是什么?
let ds: SCDynamicStoreRef = SCDynamicStoreCreate(nil, "setProxy" as CFString, nil, nil)!
let isUpdated = SCDynamicStoreSetValue(ds, "HTTPProxy" as CFStringRef, "111.111.111.1")
if isUpdated{
print("updated")
}else{
print("not updated")
}
问题是有关SCDynamicStoreSetValue为什么返回false以及如何规避它。
最佳答案
SCDynamicStoreSetValue
失败后,调用SCError()
获取错误代码:
let errorCode = SCError()
或通过以下方式获取错误作为字符串:
let errorString = String.fromCString(SCErrorString(SCError()))
无论哪种情况,都请检查Status and Error Codes for the System Configuration Framework。这应该为您提供
SCDynamicStoreSetValue
返回false的原因。(如果您的应用是“沙盒”,则可能的原因是
kSCStatusAccessError
或“权限被拒绝”。沙盒的应用无法设置这些值。)