链氪巴士
  1. 首页
  2. 站点导航
  3. 文章
  4. 快讯
  5. 软件
  6. 书刊
  7. 关于

BMChineseSort-基于特定中文属性优化排序的工具类

BMChineseSort是一个用于模型、字典、字符串数组基于特定中文属性基于tableview分组优化的工具类。它提供了多种功能,包括处理多音字、多种排序方式选择、特殊字符处理、剔除特定字符开头元素等。对于模型排序有详细的使用示例,字符串排序也类似且有相关注意事项。同时有oc...

访问官网 →

项目标题:BMChineseSort-基于特定中文属性优化模型、字典、字符串数组排序工具

项目简介

BMChineseSort是一个为模型、字典、字符串数组根据特定中文属性基于tableview分组优化的工具类。它具有一些独特的功能,例如对于多音字问题开放了映射属性可手动修改,提供swift版本(基于反射实现且尽量不使用偏oc的方法)。在排序方式上,支持多种设置,包括排序所用方法(有两种选择且各有特点)、比较类型(如全拼音或首字母)、是否开启打印、是否要求排序稳定等,还能对特殊字符进行处理以及剔除特定字符开头的元素等操作。

核心技术

基于异步、多线程降低排序时间。其文字转拼音方法有两种选择,sortMode = 1时使用系统CFStringTransform方法转换,sortMode = 2时使用汉字码表对应的首字母码表通过编码顺序查找。同时利用多线程异步操作后进行优化,在多线程环境下高效地处理排序任务,并且能够处理模型、字典、字符串数组等不同类型数据的排序优化。

实践案例

在模型排序方面,以Person模型为例,可使用sortWithArray方法进行排序,如对包含Person对象的NSMutableArray进行排序,在回调中获取排序结果用于TableView的相关设置,像设置section的titleHeader、section行数、每组section个数等。对于字符串分组排序,如对包含省份名称的数组排序,使用方法与模型排序类似但key传nil。还可以通过BMChineseSortSetting.share来进行各种属性的设置,如设置排序模式、特殊字符相关属性、剔除特定字符开头的元素以及多音字映射等操作,无论是oc版本还是swift版本都有对应的使用方式和示例。

项目总结

BMChineseSort是一个功能较为全面的针对中文属性相关数据排序优化的工具类。它在多种数据类型的排序优化方面有着丰富的功能和应用场景,并且不断更新版本修复问题和添加新功能。欢迎大家在评论区留言分享自己对这个项目的看法或者使用过程中的经验等。

项目地址

GitHub链接直达