错误域= CNErrorDomain代码= 200“更新记录不存在”

问题描述:

当我运行下面的代码,我在最后try语句此错误:错误域= CNErrorDomain代码= 200“更新记录不存在”

错误域= CNErrorDomain代码= 200“更新记录不存在” 的UserInfo = {NSLocalizedFailureReason =该保存请求失败,因为它 更新不存在或已被删除的记录, CNInvalidRecords =( ‘’),NSLocalizedDescription =更新的记录不 存在}

我不明白这个错误。正如你所看到的,CNGroup的记录显然存在,因为我刚创建它没有错误。我也在模拟器中检查过。联系人和组都存在。

let store = CNContactStore() 

    let defaultContainerIdentifier = store.defaultContainerIdentifier() 

    let cnMutableGroup = CNMutableGroup() 

    cnMutableGroup.name = "Temple5" 

    let groupIdentifier = cnMutableGroup.identifier 

    let cnMutableContact = CNMutableContact() 

    cnMutableContact.familyName = "Ralph5" 

    cnMutableContact.givenName = "Rolfson5" 

    let contactIdentifier = cnMutableContact.identifier 

    let saveRequest = CNSaveRequest() 

    saveRequest.add(cnMutableGroup, toContainerWithIdentifier: defaultContainerIdentifier) 

    saveRequest.add(cnMutableContact, toContainerWithIdentifier: defaultContainerIdentifier) 

    do { 

     try store.execute(saveRequest) 

    } catch let error as NSError { 

     print(error) 

    } 

    let predicateGroups = CNGroup.predicateForGroups(withIdentifiers: [groupIdentifier]) 

    var cnGroups: [CNGroup] = [] 

    do { 

     cnGroups = try store.groups(matching: predicateGroups) 

    } catch let error as NSError { 

     print(error) 

    } 

    let cnGroup = cnGroups.first! 

    let predicateContacts = CNContact.predicateForContacts(withIdentifiers: [contactIdentifier]) 

    let keys = [CNContactGivenNameKey, CNContactPhoneNumbersKey] 

    var cnContacts: [CNContact] = [] 

    do { 

     cnContacts = try store.unifiedContacts(matching: predicateContacts, keysToFetch: keys as [CNKeyDescriptor]) 

    } catch let error as NSError { 

     print(error) 

    } 

    let cnContact = cnContacts.first! 

    saveRequest.addMember(cnContact, to: cnGroup) 

    do { 

     try store.execute(saveRequest) 

    } catch let error as NSError { 

     print(error) 

    } 
+0

嗨,@ShinehahGnolaum,我有同样的问题,你知道吗? – Jerome

+0

@Jerome不,我没有。抱歉。 – ShinehahGnolaum

尝试将nil传递给您的容器标识符。

saveRequest.add(cnMutableContact, toContainerWithIdentifier: nil)