Một số người dùng beta my upcoming app đang báo cáo rằng danh sách liên hệ chứa nhiều bản ghi trùng lặp. Tôi đang sử dụng kết quả từ ABAddressBookCopyArrayOfAllPeople
làm nguồn dữ liệu cho chế độ xem bảng tùy chỉnh của tôi trong danh sách liên hệ và điều này khiến tôi thấy rằng kết quả khác với ứng dụng 'Danh bạ' của iPhone.Xử lý địa chỉ liên hệ trùng lặp do thẻ được liên kết trong API sổ địa chỉ của iOS
Khi xem xét kỹ hơn ứng dụng Danh bạ, có vẻ như các bản sao có nguồn gốc từ các mục có "Thẻ được liên kết". Các ảnh chụp màn hình dưới đây đã bị làm xáo trộn một chút, nhưng như bạn thấy trong ứng dụng của tôi ở bên phải, "Celine" xuất hiện hai lần, trong khi trong ứng dụng Danh bạ ở bên trái chỉ có một "Celine". Nếu bạn nhấp vào hàng của liên hệ duy nhất đó, bạn sẽ nhận được thẻ "Thông tin hợp nhất" với hai "Thẻ được liên kết" (như được hiển thị ở giữa, tôi không sử dụng chi tiết liên hệ của Celine vì chúng không vừa với một ảnh chụp màn hình):
các vấn đề xung quanh "Thẻ liên kết" có quite một few topics trên Apple's forums cho người dùng cuối, nhưng ngoài thực tế là nhiều điểm đến một 404 support page, tôi có thể không thực tế đi xung quanh sửa chữa tất cả sổ địa chỉ của người dùng ứng dụng của tôi. Tôi rất muốn giải quyết nó một cách tao nhã và không làm phiền người dùng. Để làm cho vấn đề tồi tệ hơn, có vẻ như tôi không phải là người duy nhất có vấn đề này, kể từ WhatsApp is showing the same list containing duplicate contacts.
Chỉ cần làm rõ về nguồn gốc của các liên hệ trùng lặp, tôi không lưu trữ, lưu vào bộ nhớ cache hoặc nói cách khác là thông minh về mảng trả về ABAddressBookCopyArrayOfAllPeople
. Vì vậy, các bản ghi trùng lặp đến trực tiếp từ cuộc gọi API.
Có ai biết cách xử lý hoặc phát hiện các thẻ được liên kết này, ngăn không cho các bản ghi trùng lặp hiển thị không? Ứng dụng Danh sách liên hệ của Apple thực hiện điều đó, làm cách nào để phần còn lại của chúng tôi cũng làm như vậy?
CẬP NHẬT: Tôi đã viết một thư viện và đặt nó trên Cocoapods để giải quyết vấn đề trong tầm tay. Xem câu trả lời của tôi dưới đây
Tôi nghĩ đây là vấn đề lớn hơn trong iOS6, với các địa chỉ liên hệ trên Facebook. Nhưng kể từ khi tôi trở lại iOS5 tôi không thể xác minh nếu nó là như nhau .. – Jankeesvw
Facebook có thể thêm thẻ liên kết quá ... Sau đó, ai đó phải có suy nghĩ về cách thích hợp để hiển thị một danh sách, nếu nó không phải là ABAddressBookCopyArrayOfAllPeople – epologee