2011-12-29 2 views
0

에 ABUnknownPersonViewController를 통해 주소록에 새 항목을 만들려고 (그것은있는 UITableViewController입니다) :나는이 코드를 사용하여 ABUnknownPersonViewController를 통해 주소록에 새 항목을 만들려고 해요 아이폰 OS에서 아이폰 OS

- (void)      tableView:(UITableView *)tableView 
accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath 
{ 
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; 
    NSString *phoneNumber = [[cell textLabel] text]; 
    ABRecordRef record = ABPersonCreate(); 
    CFErrorRef error = NULL; 
    ABMutableMultiValueRef phone = 
      ABMultiValueCreateMutable(kABPersonPhoneProperty); 
    ABMultiValueAddValueAndLabel 
      (phone, phoneNumber, kABPersonPhoneMobileLabel, NULL); 
    bool didSet = ABRecordSetValue(record, kABPersonPhoneProperty, phone, 
      &error); 

    if (!didSet) { 
     return; 
    } 
    ABUnknownPersonViewController *viewController = 
      [[[ABUnknownPersonViewController alloc] init] autorelease]; 

    [viewController setUnknownPersonViewDelegate:self]; 
    [viewController setAllowsAddingToAddressBook:YES]; 
    [viewController setAllowsActions:NO]; 
    [viewController setDisplayedPerson:record]; 
    [[self navigationController] setNavigationBarHidden:NO animated:NO]; 
    [[self navigationController] pushViewController:viewController 
      animated:YES]; 
    CFRelease(record); 
    CFRelease(phone); 
} 

편집 : 하지만 phoneNumber가 포맷되기 전에 주소록에 추가되었으므로 충돌이 발생합니다 (ej "987654321"은 "987 654 321"이됩니다). phoneNumber를 상수 문자열 (@ "987654321")로 바꾸면 모든 것이 올바르게 실행됩니다. 또한 ABPersonPhoneProperty가 아닌 ABPersonEmailProperty에 대한 값을 추가하면 올바르게 실행됩니다.

어떤 도움이 필요합니까? 내가 대체하면서

+0

@property (copy) NSString * selectedPhoneNumber를 만들려고 했습니까? 속성을 만들면 textLabel 텍스트를 할당하면 복사됩니다. 다음 셀을 선택하면 해제되고 복사됩니다. – bryanmac

+0

"다른 문자열"은 무엇을 의미합니까? 상수 @ "문자열"? [[NSString alloc] init ...]을 사용하여 생성 된 모든 문자열? –

+0

@bryanmac 복사 된 속성을 할당해도 문제가 해결되지 않습니다. 나는 계속 노력할 것이다. – caliopigio

답변

0

이 일하고있어 :

ABMutableMultiValueRef phone = ABMultiValueCreateMutable(kABPersonPhoneProperty); 

로 :

ABMutableMultiValueRef phone = ABMultiValueCreateMutable(kABPersonEmailProperty); 

그것은 이상적인 아니지만 작동합니다.