2013-06-04 19 views
15

Ứng dụng của tôi tải lên danh bạ và, trong tương lai, sẽ cần phải cập nhật chúng. Đang sử dụng ABRecordID một cách đáng tin cậy để xác định mọi người, hoặc có thể cho một kỷ lục mới để có được ID của một hồ sơ bị xóa?ABRecordID có phải là cách đáng tin cậy để xác định các liên hệ duy nhất không?

Để tối ưu hóa video tải lên, tôi chỉ muốn tải lên các bản ghi đã được sửa đổi hoặc được tạo kể từ lần tải lên cuối cùng. Tôi hiện đang lưu trữ bản sao danh sách liên hệ của người đó bằng dữ liệu cốt lõi. Tôi muốn giảm bớt dấu chân của ứng dụng và tăng tốc thời gian thực thi quét qua sổ địa chỉ của người đó để tìm kiếm địa chỉ liên hệ đã sửa đổi/mới và giới hạn số tiền cần được tải lên. Sau khi phân tích sổ địa chỉ của một số người, số lượng liên lạc có thể dao động từ 30 đến khoảng 30.000. Xử lý 30.000 liên lạc là một cơn ác mộng.

Trả lời

16

Bản ghi mới sẽ không nhận được id trước đó được liên kết với bản ghi đã xóa. ABRecordID s là duy nhất trong lĩnh vực đó. Nhưng chúng không nhất thiết nhất quán theo thời gian, một vài thứ có thể khiến id thay đổi. Người dùng bật hoặc tắt iCloud có thể khiến id thay đổi, vì có thể khôi phục thiết bị từ itunes. Điều đó nói rằng, ABRecordID vẫn là lựa chọn tốt nhất của bạn để có được một id duy nhất cho một số liên lạc. Bạn chỉ cần kiểm tra kỹ những thứ xếp hàng khi sử dụng nó. Táo gợi ý sau đây trong hướng dẫn lập trình sổ địa chỉ:

Cách khuyến khích để giữ một tham chiếu dài hạn lên mức kỷ lục đặc biệt là để lưu trữ các tên đầu tiên và cuối cùng, hoặc băm những người đầu tiên và cuối cùng tên, ngoài số nhận dạng. Khi bạn tìm kiếm bản ghi theo số ID, hãy so sánh tên của bản ghi với tên được lưu trữ của bạn. Nếu họ không phù hợp với số , hãy sử dụng tên được lưu trữ để tìm bản ghi và lưu trữ ID mới để lưu nội dung trò chuyện.

+1

Tham chiếu: https://developer.apple.com/library/ios/documentation/ContactData/Conceptual/AddressBookProgrammingGuideforiPhone/Chapters/DirectInteraction.html – rjobidon

Các vấn đề liên quan