Получить номер с адреса Boook - PullRequest
2 голосов
/ 04 мая 2011

Я хочу получить номер выбора пользователя из телефонной книги.Пока я могу получить только его Имя.

- (IBAction) showPhoneBook: (id)sender {
    ABPeoplePickerNavigationController *picker =
    [[ABPeoplePickerNavigationController alloc] init];
    picker.peoplePickerDelegate = self;
    [self presentModalViewController:picker animated:YES];
    [picker release];
}

- (void)peoplePickerNavigationControllerDidCancel:
    (ABPeoplePickerNavigationController *)peoplePicker {
        [self dismissModalViewControllerAnimated:YES];
}
- (BOOL)peoplePickerNavigationController:
(ABPeoplePickerNavigationController *)peoplePicker
  shouldContinueAfterSelectingPerson:(ABRecordRef)person {

// Select phone number
NSString* name = (NSString *)ABRecordCopyValue(person,
                                               kABPersonFirstNameProperty);

self.number.text = name;

[name release];
[self dismissModalViewControllerAnimated:YES];
return NO;
}

- (BOOL)peoplePickerNavigationController:
  (ABPeoplePickerNavigationController *)peoplePicker
  shouldContinueAfterSelectingPerson:(ABRecordRef)person
                            property:(ABPropertyID)property
                          identifier:(ABMultiValueIdentifier)identifier{
return NO;
}

Как получить номер вместо имени?

С уважением.

Ответы [ 2 ]

6 голосов
/ 04 мая 2011

Чтобы получить номер телефона из записи, которую вы можете сделать (в вашем методе обратного вызова):

ABMultiValueRef phoneNumberProperty = ABRecordCopyValue(person, kABPersonPhoneProperty);
NSArray* phoneNumbers = (NSArray*)ABMultiValueCopyArrayOfAllValues(phoneNumberProperty);
CFRelease(phoneNUmberProperty);

// Do whatever you want with the phone numbers
NSLog(@"Phone numbers = %@", phoneNumbers);
[phoneNumbers release];

UPDATE

ABMultiValueRef phones =(NSString*)ABRecordCopyValue(person, kABPersonPhoneProperty);
NSString* mobile=@"";
NSString* mobileLabel;
for(CFIndex i = 0; i < ABMultiValueGetCount(phones); i++) {
        mobileLabel = (NSString*)ABMultiValueCopyLabelAtIndex(phones, i);
        if([mobileLabel isEqualToString:(NSString *)kABPersonPhoneMobileLabel])
        {
                [mobile release] ;
                mobile = (NSString*)ABMultiValueCopyValueAtIndex(phones, i);
        }
1 голос
/ 04 мая 2011

Используйте это:

ABPersonViewController *pvc = [[[ABPersonViewController alloc] init] autorelease];
    pvc.displayedPerson=contact.phonenumbers;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...