2017-09-27 1 views
0

, 나는 마지막 try 문에이 오류 "레코드가 존재하지 않는 업데이트"오류 도메인 = CNErrorDomain 코드 = (200) 나는 다음과 같은 코드를 실행하면

오류 도메인 = CNErrorDomain 코드 = 200 "업데이트 기록 존재하지 않음 " 사용자 정보는 = {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) 
관련 문제