Sno*_*man 6 iphone objective-c ios
我想显示一个只显示带有电子邮件的联系人的ABAddressBook,所以我试过这样的事情:
ABAddressBookRef addressBook = ABAddressBookCreate();
CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople( addressBook );
CFIndex nPeople = ABAddressBookGetPersonCount( addressBook );
for( CFIndex emailIndex = 0; emailIndex < nPeople; emailIndex++ ) {
ABRecordRef person = CFArrayGetValueAtIndex( allPeople, emailIndex );
ABMutableMultiValueRef emailRef=ABRecordCopyValue(person, kABPersonEmailProperty);
int emailCount = ABMultiValueGetCount(emailRef);
if(emailCount == 0) {
ABAddressBookRemoveRecord(addressBook, person, NULL);
}
}
ABPeoplePickerNavigationController *picker = [[ABPeoplePickerNavigationController alloc] init];
picker.addressBook = addressBook;
picker.peoplePickerDelegate = self;
[self presentModalViewController:picker animated:YES];
Run Code Online (Sandbox Code Playgroud)
控制器显示,但显示所有联系人,如果我选择没有电子邮件的联系人,我会崩溃.如果我调用ABAddressBookSave(),它会删除所有带有电子邮件的联系人,但这是一个永久性更改,甚至会从系统联系人中删除它们.这样做的正确方法是什么?
| 归档时间: |
|
| 查看次数: |
1311 次 |
| 最近记录: |