[英]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.