回答
致電ABAddressBookCopyArrayOfAllPeople()
獲取地址簿中所有人員記錄的數組。然後按照the documentation:
要排序的人一個數組,功能ABPersonComparePeopleByName作爲比較和類型ABPersonSortOrdering的情況下使用該功能CFArraySortValues。用戶希望的排序順序,由ABPersonGetSortOrdering返回,通常是首選的上下文。
下面的代碼清單顯示排序整個地址簿數據庫的例子:
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);
如何: - 在ABPerson.h
宣佈
ABAddressBookCopyArrayOfAllPeopleInSourceWithSortOrdering
我使用上面的代碼(來自被批准的答案)從iPhone複製地址簿,並且還使用ABPersonComparePeopleByName
用於排序地址簿。但是,當iPhone的國際語言不同時,發現它對同一地址簿的排序結果不同。假設根據不同的標準對不同的語言進行排序是合理的。因此,在我們的項目中,我們有「en.lproj」..「zh-hant.lproj」...「ja.lproj」,在NSCalendar
中,我們也有「locale」設置。所以我正在考慮如何設置ABPersonComparePeopleByName
的標準並詢問Apple。一個非常有用的回覆:「一個排序是不可預測的」。
蘋果的答覆的有關部分如下:
其實,這是正常的行爲。用不同的語言排序實際上是一個非常複雜的問題,用戶的期望根據語言/位置而有很大的差異。老實說,你最好的選擇是調整你的期望,並假定排序順序是不可預測的。任何其他方法很可能會惹惱和混淆許多國際用戶。
-Kevin
凱文·埃利奧特,DTS工程師,kevin_elliott @蘋果,玉米
請添加一個鏈接到這個職位以及。 – tipycalFlow 2013-05-29 10:52:50
- 1. 如何在listview中對手機通訊錄進行排序?
- 2. 如何在iPhone應用程序中進行點對點通訊?
- 3. PhoneGap的通訊錄排序順序
- 4. objective-c iPhone通訊錄:kABPersonAddressStreetKey
- 5. iOS 7通訊錄沒有排序
- 6. 如何與tor網絡進行通訊
- 7. 如何對json對象進行排序?
- 8. iPhone TCP通訊
- 9. 在iPhone應用程序中獲取iPhone通訊錄聯繫人
- 10. 如何對Composite對象中的記錄進行排序?
- 11. 如何對行組進行排序?
- 12. 如何使用ABAddressBook刪除iPhone通訊錄中的記錄?
- 13. 如何在iPhone中對NSMutableArray的值Aa-Zz進行排序?
- 14. 如何使用iphone中的數字對數組進行排序?
- 15. iPhone:如何使用NSDate對日期進行排序?
- 16. 對SQL記錄進行排序
- 17. 基於Newsequentialid對記錄進行排序()
- 18. 讓用戶對記錄進行排序?
- 19. 如何通過嵌套值對JSON對象進行排序?
- 20. 如何通過枚舉值對對象進行排序?
- 21. 如何通過派生計算對對象進行排序?
- 22. 如何對普通對的集合進行排序
- 23. 如何通過其對象屬性對ArrayList進行排序?
- 24. 如何通過element.name對javascript對象數組進行排序
- 25. 如何通過NSString屬性對對象數組進行排序
- 26. 如何通過javascript/jquery對錶行進行排序?
- 27. iPhone通訊錄調用阻塞
- 28. iPhone的多線程操作通訊錄
- 29. iPhone通訊錄自定義屬性
- 30. iPhone通訊錄外部更改回電
它是如何將在斯威夫特使用? – Developer 2015-01-02 06:08:10