通讯录排序
通訊錄是現在開發一個app必不可少的功能了,因為每個老板都想囤積用戶,所以都想搞IM,雖然這塊肉不是人人都能吃,但明顯很多人都想分一杯羹,我們作為開發,吃肉喝湯當然輪不到我們o(╯□╰)o,可是分下來的任務必須完成。
既然有通訊錄,當然離不開排序
- 排序標記
-
外部調用接口
/**分組排序@param objects 排序對象@param completion 排序結果@param empty 是否允許空數組@param queue 排序線程*/+ (void)sortObjects:(nullable NSArray<SortProtocol> *)objectswithCompletion:(void(^)(NSDictionary * _Nullable sortedResult, NSArray * _Nullable sectionTitles))completionwithEmptySections:(BOOL)empty withQueue:(nullable dispatch_queue_t)queue; 復制代碼 -
內部實現
- 創建一個SortPresenter類
調用只需要一句代碼:
[SortPresenter sortObjects:contactswithCompletion:^(NSDictionary * _Nullable sortedResult, NSArray * _Nullable sectionTitles) {self.dataSource = sortedResult.mutableCopy;self.sectionTitles = sectionTitles.mutableCopy;[self.tableView reloadData]; } withEmptySections:NO withQueue:nil]; 復制代碼看看控制臺打印:
sortResult->>>>>>{A = ("<Contact: 0x60800003b840>");B = ("<Contact: 0x60800003b860>");C = ("<Contact: 0x608000227880>");H = ("<Contact: 0x60800003b580>","<Contact: 0x60800003b620>");K = ("<Contact: 0x60800003b600>");L = ("<Contact: 0x60800003b640>","<Contact: 0x60800003b540>");M = ("<Contact: 0x608000229980>");X = ("<Contact: 0x60800003b520>","<Contact: 0x60800003b4a0>","<Contact: 0x60800003b5a0>");Z = ("<Contact: 0x60800003b560>"); } 復制代碼喜歡這個排序后的格式,條理清晰,又不會有太多冗余。 這個排序還是比較簡單,沒有做多音字和同音字處理,以后會完善。
轉載于:https://juejin.im/post/5a34eb786fb9a0452a3c6583
總結
- 上一篇: Linux下Sniffer程序的实现
- 下一篇: linux服务器mysql数据库新建数据