【发布时间】:2016-06-06 18:07:24
【问题描述】:
在设备上的地址簿中,我有一条与 Facebook 联系人记录相关联的记录。 我使用 CNContactFetchRequest 将其提取到 CNContact 中:
contactFetchRequest.mutableObjects = true
contactFetchRequest.unifyResults = false
得到后,我修改它,然后我尝试更新它:
let store = CNContactStore()
let saveRequest = CNSaveRequest()
if contact != nil {
mutableContact = contact!.mutableCopy() as! CNMutableContact
saveRequest.updateContact( mutableContact )
} else {
mutableContact = CNMutableContact()
saveRequest.addContact( mutableContact, toContainerWithIdentifier:nil )
}
// Modify mutableContact
mutableContact.jobTitle = "Worker";
do {
// Will fails with error
try store.executeSaveRequest(saveRequest)
} catch let error as NSError {
BCRLog(error)
self.isFailed = true
} catch {
self.isFailed = true
}
在执行 executeSaveRequest 时,我发现了一个错误:
NSError with domain:CNErrorDomain, code:500 (witch is CNErrorCodePolicyViolation), _userInfo: {"NSUnderlyingError" : {"ABAddressBookErrorDomain" - 代码 0}} 女巫是 kABOperationNotPermittedByStoreError
问题:是否可以修改链接的联系人(不统一),如果可以,我做错了什么?
如果我修改未链接的联系人 - 一切正常!
【问题讨论】:
-
我也有同样的问题。 contactStore.executeSaveRequest(saveRequest) 抛出错误。有人帮助我们!
-
似乎没有任何迹象表明您无法修改链接的联系人。在尝试进行保存请求之前,您是否检查过联系人存储的授权状态?
标签: ios cocoa-touch ios9 contacts-framework