【发布时间】:2014-05-28 08:43:26
【问题描述】:
我无法获取iPhone contacts。
- 我已尝试通过以下代码获取联系人。
- 它在模拟器中运行良好,并且在联系人列表中的联系人较少时也运行良好。
- 在我的手机中,我有 1000 个联系人。所以它在这个设备上崩溃了。如果您知道原因,请指导我。
这是我的代码。
ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, error);
ABRecordRef source = ABAddressBookCopyDefaultSource(addressBook);
CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeopleInSourceWithSortOrdering(addressBook, source, kABPersonSortByFirstName);
CFIndex nPeople = ABAddressBookGetPersonCount(addressBook);
NSMutableArray* items = [NSMutableArray arrayWithCapacity:nPeople];
for (int i = 0; i < nPeople; i++)
{
NSMutableDictionary *dicContacts = [[NSMutableDictionary alloc]init];
ABRecordRef person = CFArrayGetValueAtIndex(allPeople, i);
NSMutableArray *phoneNumbers = [[NSMutableArray alloc] init];
ABMultiValueRef multiPhones = ABRecordCopyValue(person, kABPersonPhoneProperty);
for(CFIndex i=0;i<ABMultiValueGetCount(multiPhones);i++)
{
CFStringRef phoneNumberRef = ABMultiValueCopyValueAtIndex(multiPhones, i);
NSString *phoneNumber = (__bridge NSString *) phoneNumberRef;
[phoneNumbers addObject:phoneNumber];
//NSLog(@"All numbers %@", phoneNumbers);
}
if ([phoneNumbers count] > 0) {
[dicContacts setValue:[phoneNumbers objectAtIndex:0] forKeyPath:@"Contact"];
}
[items addObject:dicContacts];
}
提前致谢
【问题讨论】:
-
put breakpoint n 查看你得到什么错误信息或在哪一行?
-
我认为phoneNumber为nil,使用异常断点
-
你能用崩溃日志更新你的问题吗?
-
嘿@Rythm 检查我的答案。,,,
标签: ios iphone objective-c abaddressbook contact-list