我正在使用Retrieve all contacts phone numbers in iOS中接受的答案提供的代码,我注意到很多联系人都丢失了。我很确定他们是存储在SIM卡上的联系人,不知何故,ABAddressBookCopyArrayOfAllPeople不会从SIM卡中检索联系人。如果我使用ABPeoplePickerNavigationController
,则会显示联系人,但这不适合我正在构建的内容。
有谁知道如何克服这个问题?
由于
答案 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
的每个电话号码。