2012-04-02 60 views
3

爲了讓我使用ABAddressBookCopyArrayOfAllPeople方法,但是這個方法返回與重複的所有聯繫人的所有聯繫人:在「聯繫人」應用程序,我看到,幾乎每一個我的聯繫人聯繫卡(它的節目我說,我有兩個相同的通訊錄一個從iCloud中和其他從我的iPad)。正如我在這個原因看ABAddressBookCopyArrayOfAllPeople方法返回重複的聯繫人。
如何從ABAddressBook不重複的所有聯繫人?如何檢索ABAddressBook所有聯繫人沒有重複

回答

0

我有同樣的問題,並沒有發現另一種解決方案,則手動雙向鏈路重複的去除工藝:

兩個級聯循環(訴訟N^2),其面對每一接觸對記錄ID那是由ABAddressBookCopyArrayOfAllPeople返回的。然後,我添加到最終名單隻與接觸ID接觸。這不是非常漂亮的解決方案,但它適用於我。

1

從內存中,我認爲這每個用戶只返回一個記錄:

ABRecordRef source = ABAddressBookCopyDefaultSource(addressBook); 
    addressBookArray = (__bridge_transfer NSArray *)ABAddressBookCopyArrayOfAllPeopleInSourceWithSortOrdering(addressBook, source, kABPersonSortByLastName); 

我已經用它的它似乎工作。儘管您必須跳過鏈接的聯繫人才能獲取有關用戶的所有詳細信息。

當你完成時記得CFRelease源和地址簿。

相關問題