在设备上的AddressBook中,我有一条与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,代码:500(女巫是 CNErrorCodePolicyViolation),_ userInfo:{" NSUnderlyingError" : {" ABAddressBookErrorDomain" - 代码0}}女巫是 kABOperationNotPermittedByStoreError
问题:是否可以修改链接的联系人(不统一),如果是,我做错了什么?
如果我修改未联系的联系人 - 一切OK!
答案 0 :(得分:0)
当“联系人”应用配置为将联系人存储在Exchange帐户中时,出现此错误。当我选择iCloud帐户作为默认帐户时,它会立即很好地保存联系人。我可以在“设置”->“联系人”->“默认帐户”
中查看您设备上的设置