ABAddressBookCopyArrayOfAllPeople没有收到存储在SIM卡上的联系人

时间:2014-09-18 03:47:02

标签: ios objective-c abaddressbook

我正在使用Retrieve all contacts phone numbers in iOS中接受的答案提供的代码,我注意到很多联系人都丢失了。我很确定他们是存储在SIM卡上的联系人,不知何故,ABAddressBookCopyArrayOfAllPeople不会从SIM卡中检索联系人。如果我使用ABPeoplePickerNavigationController,则会显示联系人,但这不适合我正在构建的内容。

有谁知道如何克服这个问题?

由于

1 个答案:

答案 0 :(得分:0)

Missing contacts in ABAddressBookCopyArrayOfAllPeople得到了答案。虽然起初并不完全清楚海报的​​作用,但主要的是将ABMultiValueRef投射到NSArray,如此:

ABMultiValueRef phones = (__bridge ABMultiValueRef)((__bridge NSString*)ABRecordCopyValue(ref, kABPersonPhoneProperty));
NSArray *phoneNumbers = (__bridge NSArray *)ABMultiValueCopyArrayOfAllValues(phones);

之后phoneNumbers包含当前ABPerson的每个电话号码。