今後のアプリのベータユーザーの中には、連絡先のリストに重複するレコードがたくさん含まれていると報告している人がいます。連絡先のカスタマイズされたテーブルビューのデータソースとしてからの結果を使用してABAddressBookCopyArrayOfAllPeople
いますが、結果がiPhoneの「連絡先」アプリとは異なることに戸惑います。
連絡先アプリを詳しく見ると、重複は「リンクされたカード」のエントリに由来しているようです。以下のスクリーンショットは少しわかりにくくなっていますが、右端の私のアプリでわかるように、「Celine」は2回表示されますが、左側の連絡先アプリでは「Celine」は1つだけです。その単一の連絡先の行をクリックすると、2つの「リンクされたカード」を含む「統一情報」カードが表示されます(中央に示されているように、1つのスクリーンショットに収まらないため、Celineの連絡先の詳細は使用しませんでした):
「リンクされたカード」に関する問題は、エンドユーザー向けのAppleのフォーラムにかなりの数のトピックがありますが、多くが404サポートページを指しているという事実を除けば、アプリのユーザーのすべての名簿を現実的に修正することはできません。むしろ、ユーザーを煩わせることなく、エレガントに扱いたいと思います。さらに悪いことに、WhatsAppは重複する連絡先を含む同じリストを表示しているため、この問題を抱えているのは私だけではないようです。
重複する連絡先の出所を明確にするために、私は配列のABAddressBookCopyArrayOfAllPeople
戻り値について保存、キャッシュ、またはその他の方法で賢くしようとはしていません。したがって、重複するレコードはAPI呼び出しから直接取得されます。
これらのリンクされたカードを処理または検出して、重複するレコードが表示されないようにする方法を知っている人はいますか?AppleのContactsアプリはそれを行いますが、他の人たちもそうすることができますか?
更新:私はライブラリを作成し、それをCocoapodsに配置して、目前の問題を解決しました。以下の私の答えを参照してください