我只想显示具有地址字段的联系人。根据所有数据计数,我在tableview中获得了行数。任何人都可以帮助我?如何仅显示具有地址字段的联系人
-(void)showPeoplePickerController
{
ABAddressBookRef tempAddressBook = ABAddressBookCreate();
CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople(tempAddressBook);
CFIndex nPeople = ABAddressBookGetPersonCount(tempAddressBook);
for(NSUInteger i=0; i<nPeople; i++)
{
ABRecordRef ref = CFArrayGetValueAtIndex(allPeople,i);
CFStringRef address;
NSDictionary *add;
ABMutableMultiValueRef multi = ABRecordCopyValue(ref, kABPersonAddressProperty);
NSLog(@" count is.. %ld",ABMultiValueGetCount(multi));
if(ABMultiValueGetCount(multi)==0)
{
ABAddressBookRemoveRecord(tempAddressBook, ref, NULL);
}
for (CFIndex i = 0; i < ABMultiValueGetCount(multi); i++)
{
address = ABMultiValueCopyValueAtIndex(multi, i);
add=(NSDictionary *)address;
NSLog(@"add is :- %@",add);
}
}
allPeople = ABAddressBookCopyArrayOfAllPeople(tempAddressBook);
nPeople = ABAddressBookGetPersonCount(tempAddressBook);
NSLog(@" No Of People ... %ld",nPeople);
ABPeoplePickerNavigationController *picker = [[ABPeoplePickerNavigationController alloc]init];
picker.peoplePickerDelegate = self;
picker.addressBook =tempAddressBook;
// [picker.searchDisplayController.searchResultsTableView numberOfRowsInSection:2];
[self presentModalViewController:picker animated:YES];
[picker release];
}
你正在获得所有的地址值吗? – mayuur
我的问题是我可以过滤所有地址,但表视图中没有行与默认地址簿的行数相同。并且我的数据被重复。 –
@PanktiPatel我有这个相同的问题。你能解决吗? – user427969