获取地址簿的子阵列

时间:2012-08-03 16:24:48

标签: objective-c ios contacts abaddressbook

我正试图从地址簿中获取前100个联系人。 我所做的是获取所有联系人,然后尝试只获得前100个。由于某些原因不起作用(下面的代码)。

ABAddressBookRef addressBook = ABAddressBookCreate();
CFArrayRef allContacts = ABAddressBookCopyArrayOfAllPeople(addressBook);

NSRange theRange;
theRange.location = 0;
theRange.length = 100;

CFArrayRef allContactsNew = (CFArrayRef)[(NSMutableArray *)allContacts subarrayWithRange:theRange];//This gets an error

非常感谢这里的帮助。此外,如果您知道任何其他方法,只能直接从地址簿中获取前100个,这可能会非常有用。

1 个答案:

答案 0 :(得分:1)

当我做出这些更改时,它工作正常:

theRange.length = MIN(100, CFArrayGetCount(allContacts)); //avoid array out of bounds errors

CFArrayRef allContactsNew = CFBridgingRetain([(NSArray *)CFBridgingRelease(allContacts) subarrayWithRange:theRange]); //Add CFBridging functions recommended by Xcode