作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写一个应用程序,我需要在其中读取用户的地址簿并显示他所有联系人的列表。我正在测试的 iPhone 有大约 100 个联系人,加载联系人确实需要很多时间。
ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, NULL);
NSArray *allContacts = (__bridge NSArray *)ABAddressBookCopyArrayOfAllPeople(addressBook);
ABMultiValueRef phones = NULL;
ABRecordRef person = NULL;
for (int i =0; i < allContacts.count; i++) {
person = (__bridge ABRecordRef)([allContacts objectAtIndex:i]);
if (person != nil) {
phones = ABRecordCopyValue(person, kABPersonPhoneProperty);
if (ABMultiValueGetCount(phones) == 0) {
CFErrorRef error = nil;
ABAddressBookRemoveRecord(addressBook, person, &error);
}
CFRelease(phones);
}
}
CFErrorRef saveError = nil;
ABAddressBookSave(addressBook, &saveError);
ABPeoplePickerNavigationController *picker = [[ABPeoplePickerNavigationController alloc] init];
picker.view.backgroundColor=[UIColor clearColor];
picker.peoplePickerDelegate = self;
picker.delegate=self;
NSArray *displayedItems =
[NSArray arrayWithObject:[NSNumber
numberWithInt:kABPersonPhoneProperty]];
picker.displayedProperties = displayedItems;
最佳答案
您可以使用 performSelectorInBackground:withObject:
在后台线程中执行复制,这样它就不会影响主线程并且您不必在 UI 中等待。
关于ios - ABAddressBookCopyArrayOfAllPeople 慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26829840/
我开始使用 ABAddress Book 并使用一个非常简单的起点...我想获取我的地址簿中的所有条目并将其放入一个数组中。它一直显示 0 个元素。 ABAddressBookRef addressB
我正在编写一个应用程序,我需要在其中读取用户的地址簿并显示他所有联系人的列表。我正在测试的 iPhone 有大约 100 个联系人,加载联系人确实需要很多时间。 ABAddressBookRef ad
我有以下代码: NSMutableArray *contacts = [[NSMutableArray alloc]init]; CFErrorRef *error = nil; ABAddressB
由于 ABAddressBookCopyArrayOfAllPeopleInSourceWithSortOrdering() 返回的数组与 ABAddressBookGetPersonCount()
我是一名优秀的程序员,十分优秀!