Niektórzy użytkownicy bety pod numerem my upcoming app zgłaszają, że lista kontaktów zawiera dużo duplikatów. Używam wyniku z ABAddressBookCopyArrayOfAllPeople
jako źródła danych dla mojego spersonalizowanego widoku tabeli kontaktów, a to zbija mnie z błędu, że wyniki różnią się od aplikacji "Kontakt" iPhone'a.Radzenie sobie z duplikatami kontaktów ze względu na połączone karty w iOS 'Address Book API
Przyglądając się bliżej aplikacji Kontakty, wygląda na to, że duplikaty pochodzą z wpisów z "Połączonymi kartami". Poniższe zrzuty ekranu zostały nieco zaciemnione, ale jak widać w mojej aplikacji po prawej stronie, "Celine" pojawia się dwa razy, podczas gdy w aplikacji Kontakty po lewej jest tylko jedna "Celine". Jeśli klikniesz wiersz tego pojedynczego kontaktu, otrzymasz kartę "Unified Info" z dwoma "połączonymi kartami" (jak pokazano na środku, nie użyłem danych kontaktowych Celine, ponieważ nie pasowały one do jednego zrzutu ekranu):
kwestie wokół „Linked Cards” mają quitefew topics na Apple's forums dla użytkowników końcowych, ale oprócz faktu, że wiele wskazują na 404 support page, nie mogę realnie obejść mocowania wszystkich książki adresowe użytkowników mojej aplikacji. Wolałbym raczej uporać się z tym elegancko i bez przeszkadzania użytkownikowi. Co gorsza, wydaje mi się, że nie jestem jedynym z tego problemu, ponieważ WhatsApp is showing the same list containing duplicate contacts.
Aby być czystym o pochodzeniu zduplikowanych kontaktów, nie przechowuję, nie buforuję lub w inny sposób staram się być inteligentnym w odniesieniu do zwrotów z tablicy ABAddressBookCopyArrayOfAllPeople
. Tak więc zduplikowane rekordy pochodzą bezpośrednio z wywołania API.
Czy ktoś wie, jak radzić sobie z tymi połączonymi kartami lub wykrywać je, zapobiegając wyświetlaniu duplikatów? Aplikacja Kontakty Apple to robi, jak reszta z nas może to zrobić?
AKTUALIZACJA: Napisałem bibliotekę i umieściłem ją na Cocoapods, aby rozwiązać problem. Zobacz moją odpowiedź poniżej
myślę, że jest to większy problem w iOS6, ze stykami Facebooku. Ale odkąd jestem z powrotem w iOS5 nie mogę sprawdzić, czy to jest to samo .. – Jankeesvw
Facebook prawdopodobnie dodaje także połączone karty ... Wtedy ktoś musiał pomyśleć o właściwym sposobie wyświetlania listy, jeśli to nie jest ABAddressBookCopyArrayOfAllPeople – epologee