gpt4 book ai didi

iphone - 如何从电话的地址簿中选择某个号码?

转载 作者:搜寻专家 更新时间:2023-10-30 20:22:26 25 4
gpt4 key购买 nike

如何从手机的通讯录中选择某个号码?

我从地址簿中获取联系人,但只检索到手机号码。我应该怎么做才能让用户选择手机/家庭/其他号码?

这是我的代码:

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

...其余工作正常。

最佳答案

获取所有类型的电话号码...(人是 ABRecordRef 的一个实例)

    NSMutableArray *arPhList = [[NSMutableArray alloc] init];   
ABMultiValueRef phones = ABRecordCopyValue(person, kABPersonPhoneProperty);
for(CFIndex j = 0; j < ABMultiValueGetCount(phones); j++)
{
CFStringRef phoneNumberRef = ABMultiValueCopyValueAtIndex(phones, j);
NSString *phoneLabel =(NSString*) ABAddressBookCopyLocalizedLabel(ABMultiValueCopyLabelAtIndex(phones, j));
NSString *phoneNumber = (NSString *)phoneNumberRef;
NSDictionary *dicTemp = [[NSDictionary alloc]initWithObjectsAndKeys:phoneNumber,@"value", phoneLabel,@"label", nil];
[arPhList addObject:dicTemp];
}

关于iphone - 如何从电话的地址簿中选择某个号码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6941531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com