Baymax0 / BMChineseSort

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

feat:解决取不到父类的属性。传入父类名字,取相关父类属性; #13

Closed jimmy54 closed 5 years ago

Baymax0 commented 5 years ago

感谢你的发现这个问题🙏我试了下 确实是遍历不到父类的属性。 但我看了下你的代码,给方法加了一个参数,这种修改我不的不慎重查看你的代码。 我们总是希望方法名越短越好 所以我就思考了有没有不修改方法名的解决办法。 runtime类结构里 有super_class的变量,可以通过class_getSuperclass获取。当访问根类时会返回Nil,这种循环遍历的逻辑与我们通过".属性名"的方法的查找顺序是一致的,所以我试了大致如下的修改,并运行测试了,暂时没发现有什么问题 大致形式如下:

Class cla = ((NSObject*)objectArray.firstObject).class; while (cla != Nil){ // 内部逻辑 cla = class_getSuperclass(cla.class); }

修复内容我已经更新, 如果还发现问题欢迎提issue或push上你的优化,谢谢

jimmy54 commented 5 years ago

这样更加完美