我正试图从地址簿中获取前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个,这可能会非常有用。
答案 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