iphone - 从通讯录中获取号码

标签 iphone ios4

我想从电话簿中获取选择用户的号码。目前我只能得到他的名字。

- (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;
}

如何获取号码而不是名字?

致以诚挚的问候。

最佳答案

要从记录中获取电话号码,您可以执行以下操作(在回调方法内):

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];

更新

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);
        }

关于iphone - 从通讯录中获取号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5879397/

相关文章:

iphone - 如何将一个 NSMutableArray 中的最后三 block 数据复制到另一个 NSMutableArray 中?

xml - 如何使用 NSXMLParser 解析 XML

iphone - 为 UIScrollView 设置内容大小的起始点

iphone - UIWebView 中的 EXC_BAD_ACCESS

ios - ImageTransfer 在 iPhone 上使用蓝牙

iphone - 在 UITextView 中设置行高

objective-c - 是否可以触发从 html 页面到 iphone 应用程序的功能?

ios4 - 点击文本框时显示日期选择器

ios - UIScrollview 'skips' 页面延迟加载

iphone - .ipa 文件代表什么?