【问题标题】:IOS9 Contacts framework fails to update linked contactIOS9 联系人框架无法更新链接的联系人
【发布时间】: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


【解决方案1】:

当联系人应用程序配置为在 Exchange 帐户中存储联系人时,我遇到此错误。当我选择一个 iCloud 帐户作为默认帐户时,它会立即很好地保存一个联系人。我可以在“设置”->“通讯录”->“默认帐户”中查看您设备上的设置

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-15
    • 2017-10-08
    • 2016-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-01
    相关资源
    最近更新 更多