2017-09-27 13 views
0

が、私は最後の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

答えて

0

あなたのコンテナ識別子にはnilを渡してみてください。

saveRequest.add(cnMutableContact, toContainerWithIdentifier: nil) 
関連する問題