swift - CNContactStore 执行失败
问题描述
我正在研究如何使用联系人框架,但是一些用于创建联系人的相当简单的代码因意外结果而失败。这是我的代码:
let Store = CNContactStore()
Store.requestAccess(for: .contacts, completionHandler:{ success, error in
if success {
let Contact = CNMutableContact()
Contact.givenName = "Dave"
Contact.familyName = "Nottage"
let SaveRequest = CNSaveRequest()
SaveRequest.add(Contact, toContainerWithIdentifier: nil)
do {
try Store.execute(SaveRequest)
print("Success")
}
catch let error as NSError {
print(error.localizedDescription)
}
} else {
print("No access")
}
})
..这是结果:
2019-02-22 10:30:56.050344+1030 ContactsTest[30329:25254955] [default] Unable to load Info.plist exceptions (eGPUOverrides)
2019-02-22 10:30:57.973724+1030 ContactsTest[30329:25254955] Could not get real path for Address Book lock folder: open() for F_GETPATH failed.
2019-02-22 10:30:57.973954+1030 ContactsTest[30329:25254955] Unable to open file lock: <ABProcessSharedLock: 0x600001752ac0: name=(null), lockFilePath=(null), localLock=<NSRecursiveLock: 0x600002914a80>{recursion count = 0, name = nil}, fileDescriptor=-1> Error Domain=NSPOSIXErrorDomain Code=14 "Bad address" UserInfo={ABFileDescriptor=-1}
The operation couldn’t be completed. (Foundation._GenericObjCError error 0.)
关于可能导致这种情况的任何想法?
编辑:另请注意,这是为 macOS 10.14 SDK 编译的,并在 macOS 10.14.3 上运行
解决方案
答案是在Capabilities的App Sandbox部分勾选App Data的Contacts复选框,打开App Sandbox的开关。
推荐阅读
- c# - 如何将restsharp代码转换为包含文件的httpclient
- powershell - Connect to ssh server with powershell
- python - Discord bot ignores lowercase commands
- jquery - why can't I get the value and show it in a input field using jQuery
- apache-kafka - Is exactly once sematics maintained if KStream#process to do all DB operation and forwards to next consumer and finally write to a topic
- clojure - Access to XMLHttpRequest has been blocked by CORS policy. XMLHttpRequest is controlled by the withCredentials attribute
- c# - LINQ query with date ranges
- javascript - Why am I getting a 'no-unused-vars' warning in a for...of loop and how do I fix it?
- freeradius - Is there any solution to generate code in google authenticator without confirmation?
- c - Matrix traversal optimization