我需要从联系人处获取电话号码。
为此,我的代码是
- (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。
如何选择后我需要关闭此视图控制器。
任何人都可以帮助我。
提前感谢你。
答案 0 :(得分:4)
我使用“添加此代码”解决了我的问题。
- (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;
}
希望这有助于面对像我这样的问题。
答案 1 :(得分:2)
在
中写下以下代码-(BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person
{
ABMultiValueRef mul;
mul=(NSString *) ABRecordCopyValue(person, kABPersonEmailProperty);
int count= ABMultiValueGetCount(mul);
NSString *name=(NSString *) ABMultiValueCopyValueAtIndex(mul,0);
}