2017-10-08 1 views
0

연락처 그룹을 사용하여 그룹을 만든 다음 해당 그룹에 연락처를 추가하고 싶습니다.연락처 프레임 워크를 사용하여 그룹에 연락처 추가

 NSPredicate *predicate = [CNGroup predicateForGroupsWithIdentifiers:@[[[NSUserDefaults standardUserDefaults]objectForKey:@"groupIDentifier"]]]; 
     NSArray *groups = [store groupsMatchingPredicate:predicate error:&saveError]; 

     CNMutableContact *contact = [[CNMutableContact alloc] init]; 
     contact.familyName = @"Doe"; 
     contact.givenName = @"John"; 

     CNLabeledValue *homePhone = [CNLabeledValue labeledValueWithLabel:CNLabelHome value:[CNPhoneNumber phoneNumberWithStringValue:@"312-555-1212"]]; 
     contact.phoneNumbers = @[homePhone]; 

     CNSaveRequest *request = [CNSaveRequest new]; 
     CNGroup *group = [groups firstObject]; 
     [request addContact:contact toContainerWithIdentifier:group.identifier]; 

     if (![store executeSaveRequest:request error:&saveError]) { 
      NSLog(@"error = %@", saveError); 
     } 

오류는 다음과 같습니다

오류 = 오류 도메인 = CNErrorDomain 코드 = 200 사용자 정보 = {CNInvalidRecordIdentifiers = ( "45FFBB0D-C74B-4A14-8293-을"기록이 존재하지 않는 업데이트 " 9099EA7DEF81 : ABGroup "), NSLocalizedDescription = 기록이 존재하지 않는 업데이트, NSLocalizedFailureReason는 존재하지 않거나 이미 삭제 된 기록을 갱신하기 때문에 저장 요청이 실패 =}

,691,363. (210)

가 나는 또한 사용하여 시도 :

[request addMember:contact toGroup:[groups firstObject]]; 

이 경우, 오류는 다음과 같습니다 내가 찾은

error = Error Domain=CNErrorDomain Code=200 "Updated Record Does Not Exist" UserInfo={CNInvalidRecords=(
    "<CNContact: 0x7f8ce97aa640: identifier=7CC6BC1D-1B23-48DA-8282-06115F542A97:ABPerson, givenName=John, familyName=Doe, organizationName=, phoneNumbers=(\n \"<CNLabeledValue: 0x600001873cc0: identifier=68277209-3AE4-40AF-9EEA-DF0E1D01883C, label=_$!<Home>!$_, value=<CNPhoneNumber: 0x600000433300: stringValue=312-555-1212, initialCountryCode=(null)>>\"\n), emailAddresses=(\n), postalAddresses=(\n)>"), NSLocalizedFailureReason=The save request failed because it updates a record that does not exist or has already been deleted., NSLocalizedDescription=Updated Record Does Not Exist} 

답변

2

미친 것입니다 : 나는 사실을 만들기 위해, addMember 및 addCONtact 모두를 호출 할 필요가 그룹에 추가 연락처.

CNGroup *group = [groups firstObject]; 
    [request addMember:contact toGroup:group]; 
    [request addContact:contact toContainerWithIdentifier:nil]; 

if (![store executeSaveRequest:request error:&saveError]) { 
     NSLog(@"error = %@", saveError); 
    } 

실제로이 용도로 사용되지만 실제로 두 가지 유형의 요청을해야하는 이유가 없습니다.

관련 문제