に似たビューを実装するとABPeoplePickerNavigationController
、リストをすばやく並べ替えることができません。ネイティブの連絡先アプリは、リストを即座に読み込みます。4000 件以上の連絡先を扱っているため、読み込み時間を短縮することが重要です。ABPeoplePickerNavigationController
多くのカスタム UI 作業を行う必要があるため、 を使用できません。
を使用してから、 sectionForObject を使用しABAddressBookCopyArrayOfAllPeople
て人々をセクションに配置し、次に を使用してセクションを並べ替えていました。4000 件の連絡先の場合、私の時間は約 8 秒でした。UILocalizedIndexedCollation
sortedArrayFromArray
ABAddressBookCopyArrayOfAllSources
次に、すべてのソースに対して andを使用するように切り替え、ABAddressBookCopyArrayOfAllPeopleInSourceWithSortOrdering
各ソースの連絡先をソートされていない配列に追加するだけで、同じUILocalizedIndexedCollation
手法を使用しました。これにより、時間が約 5 秒に短縮されました。これは、セクションが既にほとんどソートされているためだと思います。
これを改善する方法はありますか?私が知らないテクニックはありますか?ABPeoplePickerNavigationController
ビューなしでデータ ソースを読み込んで使用することはできますか? または、より高速なソート方法はありますか?
どうもありがとう。