3
如何從手機的地址簿中選擇某個號碼?如何從手機的地址簿中選擇某個號碼?
我從地址簿中獲得一個聯繫人,但只有手機號碼被檢索到。我應該怎麼做才能讓用戶選擇移動/家庭/其他號碼?
這裏是我的代碼:
-(IBAction)pickContact
{
// creating the picker
ABPeoplePickerNavigationController *picker = [[ABPeoplePickerNavigationController alloc] init];
// place the delegate of the picker to the controll
picker.peoplePickerDelegate = self;
// showing the picker
[self presentModalViewController:picker animated:YES];
// releasing
[picker release];
}
-(void)peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker {
// assigning control back to the main controller
[self dismissModalViewControllerAnimated:YES];
}
-(BOOL)peoplePickerNavigationController: (ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person {
Contact *cont=[[Contact alloc] init];
// setting the first name
cont.fName = (NSString *)ABRecordCopyValue(person, kABPersonFirstNameProperty);
// setting the last name
cont.lastName = (NSString *)ABRecordCopyValue(person, kABPersonLastNameProperty);
// setting the number
/*
this function will set the first number it finds
if you do not set a number for a contact it will probably
crash
*/
//ABMultiValueRef multi = ABRecordCopyValue(person, kABPersonPhoneProperty);
// cont.number = (NSString*)ABMultiValueCopyValueAtIndex(multi, 0);
ABMultiValueRef phones =(NSString*)ABRecordCopyValue(
person, kABPersonPhoneProperty);
CFIndex numPhoneNums = ABMultiValueGetCount(phones);
if(numPhoneNums == 0) {
NSLog(@"No number available");
cont.number = @"No number available";
} else {
cont.number = (NSString*) ABMultiValueCopyValueAtIndex(phones, 0);
}
...剩下的工作好了。