繁体   English   中英

如何获取联系人中所选人员的电话号码

[英]how to get phone number of selected person in contacts

我需要从联系人处获取电话号码。

为此我的代码是

- (IBAction)contacts {

    NSLog(@"contacts clicked ");

    ABPeoplePickerNavigationController *peoplePickerController = [[ABPeoplePickerNavigationController alloc] init];
    peoplePickerController.peoplePickerDelegate = self;
    [self presentModalViewController:peoplePickerController animated:NO];
    [peoplePickerController release];

}
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker
      shouldContinueAfterSelectingPerson:(ABRecordRef)person {
    NSString *number = (NSString *)ABRecordCopyValue(person, kABPersonPhoneProperty);

    NSLog(@" %@",number);
    return YES;
}

在这里它像这样显示在控制台中

ABMultiValueRef 0x740b680 with 1 value(s)
    0: _$!<Mobile>!$_ (0x7419880) - (929) 230-8622 (0x740b490)

这里(929) 230-8622是手机号码,我怎么才能获得手机号码。

选择联系后,我需要关闭此视图控制器。

为此,我写这样的代码

[self dissmissModalViewControllerAnimated:YES];

但它显示,myclass可能无法响应dissmissModalViewController。

如何在选择后我需要关闭此视图控制器。

任何人都可以帮助我。

提前谢谢你。

我通过添加此代码解决了我的问题。

- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker
      shouldContinueAfterSelectingPerson:(ABRecordRef)person
                                property:(ABPropertyID)property
                              identifier:(ABMultiValueIdentifier)identifier {
    if (property == kABPersonPhoneProperty) {
        ABMultiValueRef emails = ABRecordCopyValue(person, property);
        CFStringRef phonenumberselected = ABMultiValueCopyValueAtIndex(emails, identifier);
        CFStringRef emailLabelSelected = ABMultiValueCopyLabelAtIndex(emails, identifier);
        CFStringRef emailLabelSelectedLocalized = ABAddressBookCopyLocalizedLabel(ABMultiValueCopyLabelAtIndex(emails, identifier));
        NSLog(@"\n EmailValueSelected = %@ \n EmailLabelSelected = %@ \n \EmailLabeSelectedlLocalized = %@", phonenumberselected, emailLabelSelected, emailLabelSelectedLocalized);

        NSString *aNSString = (NSString *)phonenumberselected;



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

希望这有助于面对像我这样的问题。

在下面写下代码

-(BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person

{       

    ABMultiValueRef mul;
    mul=(NSString *) ABRecordCopyValue(person, kABPersonEmailProperty);
    int count= ABMultiValueGetCount(mul);
    NSString *name=(NSString *) ABMultiValueCopyValueAtIndex(mul,0);

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM