접촉

2012-01-12 3 views
2

나는이 방법이라고 피커로 사람을 선택한 후, 주소록 프레임 워크를 사용하여 기존 연락처에 전화 번호를 추가하는 것을 시도하고 기존에 전화 번호 추가 그 사람의 기록에 추가되지 않습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?접촉

+0

현상금 수여를 위해 22 시간을 기다려야하는데, 여전히 3 시간이 걸립니다. – Thys

+0

좋아요, 기억하지 못했습니다. 타이 :) – Geoffroy

답변

4

이 레코드를 주소록에 저장해야합니다.

addressBook 속성을 사용하여 주소록을 ABPeoplePickerNavigationController으로 가져온 다음 ABAddressBookSave으로 전화하십시오. 당신은 성공/실패에 대한 ABAddressBookSave 반환 값을 테스트하고 error 변수에 추가 정보를 얻을 수 있습니다

- (BOOL) peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person 
{ 
    if(_phoneNumber != nil) 
    { 
     ABMutableMultiValueRef multiPhone = ABMultiValueCreateMutableCopy (ABRecordCopyValue(person, kABPersonPhoneProperty)); 
     ABMultiValueAddValueAndLabel(multiPhone, (__bridge CFTypeRef)_phoneNumber, kABPersonPhoneOtherFAXLabel, NULL); 
     ABRecordSetValue(person, kABPersonPhoneProperty, multiPhone,nil); 

     ABAddressBookRef ab = peoplePicker.addressBook; 
     CFErrorRef* error = NULL; 
     ABAddressBookSave(ab, error); 
     CFRelease(multiPhone); 
    } 

    return FALSE; 
} 

:

이 당신에게 뭔가를 제공합니다.