Làm cách nào tôi có thể sắp xếp (hoặc truy lục mảng được sắp xếp) một sổ liên lạc trên iphone bằng tên đầu tiên & tên cuối cùng theo chương trình ??cách sắp xếp sổ liên lạc trên iphone?
Mọi trợ giúp sẽ được đánh giá cao ...! Cảm ơn
Làm cách nào tôi có thể sắp xếp (hoặc truy lục mảng được sắp xếp) một sổ liên lạc trên iphone bằng tên đầu tiên & tên cuối cùng theo chương trình ??cách sắp xếp sổ liên lạc trên iphone?
Mọi trợ giúp sẽ được đánh giá cao ...! Cảm ơn
Gọi ABAddressBookCopyArrayOfAllPeople()
để nhận một mảng tất cả bản ghi người trong sổ địa chỉ. Sau đó làm theo the documentation:
Để sắp xếp một mảng của người dân, sử dụng CFArraySortValues chức năng với chức năng ABPersonComparePeopleByName như so sánh và một bối cảnh của các loại ABPersonSortOrdering. Thứ tự sắp xếp mong muốn của người dùng, như được trả về bởi ABPersonGetSortOrdering, thường là ngữ cảnh ưa thích.
Việc niêm yết mã sau đây cho thấy một ví dụ về sắp xếp toàn bộ cơ sở dữ liệu Address Book:
ABAddressBookRef addressBook = ABAddressBookCreate(); CFArrayRef people = ABAddressBookCopyArrayOfAllPeople(addressBook); CFMutableArrayRef peopleMutable = CFArrayCreateMutableCopy( kCFAllocatorDefault, CFArrayGetCount(people), people ); CFArraySortValues( peopleMutable, CFRangeMake(0, CFArrayGetCount(peopleMutable)), (CFComparatorFunction) ABPersonComparePeopleByName, (void*) ABPersonGetSortOrdering() ); CFRelease(addressBook); CFRelease(people); CFRelease(peopleMutable);
Làm thế nào về vấn đề này: -
ABAddressBookCopyArrayOfAllPeopleInSourceWithSortOrdering
khai báo trong ABPerson.h
Tôi sử dụng mã trên (từ câu trả lời được phê duyệt) để sao chép sổ địa chỉ từ iPhone và cũng sử dụng ABPersonComparePeopleByName
để sắp xếp sổ địa chỉ. Nhưng thấy rằng nó sẽ có kết quả phân loại khác nhau cho cùng một sổ địa chỉ, khi ngôn ngữ quốc tế của iPhone là khác nhau. Giả sử nó là hợp lý để sắp xếp các ngôn ngữ khác nhau dựa trên các tiêu chí khác nhau. Vì vậy, trong dự án của chúng tôi, chúng tôi có "en.lproj" .. "zh-hant.lproj" ... "ja.lproj", Trong NSCalendar
, chúng tôi cũng có cài đặt "miền địa phương". Vì vậy, tôi đang suy nghĩ làm thế nào để thiết lập các tiêu chí cho ABPersonComparePeopleByName
và hỏi Apple. Trả lời rất hữu ích: "thứ tự sắp xếp không thể dự đoán được".
Phần liên quan của câu trả lời của Apple là dưới đây:
Đây thực sự là hành vi bình thường. Sắp xếp theo các ngôn ngữ khác nhau thực sự là một vấn đề vô cùng phức tạp, nơi kỳ vọng của người dùng thay đổi rất nhiều tùy thuộc vào ngôn ngữ/địa điểm. Thành thật mà nói, lựa chọn tốt nhất của bạn là điều chỉnh kỳ vọng của bạn và giả định rằng thứ tự sắp xếp không thể dự đoán được. Bất kỳ cách tiếp cận nào khác cũng rất có thể làm phiền và gây nhầm lẫn cho nhiều người dùng quốc tế.
-Kevin
Kevin Elliott, DTS Engineer, kevin_elliott @ táo, com
vui lòng thêm liên kết vào bài đăng này. – tipycalFlow
Làm thế nào nó sẽ được sử dụng trong Swift? – Developer