gpt4 book ai didi

ios - 如何使用电话号码在地址簿中搜索 ios

转载 作者:行者123 更新时间:2023-11-29 12:05:38 25 4
gpt4 key购买 nike

我是 IOS 编程的新手。在我的简单应用程序中,我将名字、姓氏和电话号码存储在 NSMutableArray 中。我有一个 UITextfield,我可以在其中获取电话号码。我想根据手机号码搜索名字和姓氏。我正在存储名字、姓氏和电话不同可变数组中的数字,因此如何在存储的数组中搜索名字和姓氏。这是我的代码

     ABAddressBookRef addressBookRef = ABAddressBookCreateWithOptions(NULL, NULL);

_firstname = [[NSMutableArray alloc]init];
_lastname = [[NSMutableArray alloc]init];
_number = [[NSMutableArray alloc]init];
_fullname = [[NSMutableArray alloc]init];
_arrContacts = [[NSMutableArray alloc]init];
if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusNotDetermined) {

ABAddressBookRequestAccessWithCompletion(addressBookRef, ^(bool granted, CFErrorRef error) {
ABAddressBookRef addressBook = ABAddressBookCreate( );
});
}

else if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusAuthorized) {
CFErrorRef *error = NULL;

ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, error);

CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople(addressBook);

CFIndex numberOfPeople = ABAddressBookGetPersonCount(addressBook);

for(int i = 0; i < numberOfPeople; i++) {
ABRecordRef person = CFArrayGetValueAtIndex( allPeople, i );
NSString *firstName = (__bridge NSString *)(ABRecordCopyValue(person, kABPersonFirstNameProperty));
NSString *lastName = (__bridge NSString *)(ABRecordCopyValue(person, kABPersonLastNameProperty));
if (firstName != nil) {
[_firstname addObject:firstName];
}
else{
[_firstname addObject:@"Not Found"];
}
if (lastName != nil) {
[_lastname addObject:lastName];
}
else{
[_lastname addObject:@"Not Found"];
}


ABMultiValueRef phoneNumbers = ABRecordCopyValue(person, kABPersonPhoneProperty);
[[UIDevice currentDevice] name];
NSArray *numbers = (__bridge NSArray *)(ABMultiValueCopyValueAtIndex(phoneNumbers, 0));
if (numbers != nil) {
[_arrContacts addObject:numbers];
NSLog(@"Numbers:%@",_arrContacts);
}




for (CFIndex i = 0; i < ABMultiValueGetCount(phoneNumbers); i++) {
NSString *phoneNumber = (__bridge_transfer NSString *) ABMultiValueCopyValueAtIndex(phoneNumbers, i);
_addressBookNum = [_addressBookNum stringByAppendingFormat: @":%@",phoneNumber];
}
}

// NSLog(@"AllNumber:%@",_addressBookNum);

}

else {
// Send an alert telling user to change privacy setting in settings app
}

CFRelease(addressBookRef);
NSLog(@"This is Name: %@",_firstname);
NSLog(@"This is LastName: %@",_lastname);
NSLog(@"Number: %@",_arrContacts);
}

请提出一些想法来做到这一点

最佳答案

与其将姓名、姓氏和数字保存在不同的数组中,不如将其存储在带有字典的单个数组中。假设 NSMutabelArray *细节创建具有三个值名称姓氏和数字的字典,并将此字典添加到数组中, 方便您进一步使用

关于ios - 如何使用电话号码在地址簿中搜索 ios,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35129574/

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