IOS9联系人框架无法更新链接的联系人

时间:2016-02-24 12:34:54

标签: ios cocoa-touch ios9 contacts-framework

在设备上的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!

1 个答案:

答案 0 :(得分:0)

当“联系人”应用配置为将联系人存储在Exchange帐户中时,出现此错误。当我选择iCloud帐户作为默认帐户时,它会立即很好地保存联系人。我可以在“设置”->“联系人”->“默认帐户”

中查看您设备上的设置