Baymax0 / BMChineseSort

BMChineseSort是一个为模型、字典、字符串数组根据特定中文属性基于tableview分组优化的工具类,基于异步、多线程降低排序时间。
Other
192 stars 23 forks source link

同一拼音首字母时顺序错乱 #11

Closed PreAnti closed 5 years ago

PreAnti commented 5 years ago

比如: 1.李某、刘某(这是正常顺序)。现在排出来的结果是刘某、李某。 2.韩某、韩某某、贺某(这是正常顺序)。现在排出来的结果是韩某、贺某、韩某某。

Baymax0 commented 5 years ago

我看了下,我猜你应该用的oc吧,下面的更新我也只改动了oc的版本,swift还没动 因为用了enumerateObjectsWithOptions:NSEnumerationConcurrent...方法多线程异步转换拼音的原因,导致第一轮转换后顺序打乱了,所以最终的排序结果是不稳定的。 我给加了needStable属性,默认是false,需要稳定排序的话使用前设为true就好了 BMChineseSortSetting.share.needStable = true; 这操作我暂时是替换了多线程方法为单线程的方法,所以如果数据量大的话可能速度会有影响。

Baymax0 commented 5 years ago

我只是初步测试了下,如果还有问题欢迎继续反馈

PreAnti commented 5 years ago

Objective-C和Swift都在用,不过当前项目用Objective-C开发的。