在设备上的地址簿中,我有一条与 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 域:CNErrorDomain,代码:500(女巫是 CNErrorCodePolicyViolation),_userInfo:{“NSUnderlyingError”:{“ABAddressBookErrorDomain” - 代码 0}} 女巫是 kABOperationNotPermittedByStoreError
问题:是否可以修改链接的联系人(不统一),如果可以,我做错了什么?
如果我修改未链接的联系人 - 一切都好!