我有一个NSArray对象,它们都是从一个更抽象的类中继承了它们的不同类型。
我想按对象的类类型对数组进行排序。例如:
带有CLASSA CLASSB和CLASS C的NSArray,来自CLASSz
myArray = {C,B,A}
排序myArray降序:{A,B,C}
我看到排序描述符,看起来它是正确的路径,但我正在比较isKindOfClass,它不是属性,因此无法在NSSortDescriptiors中使用。
感谢您的帮助。
答案 0 :(得分:0)
嗯,我看到的最大障碍是你可能需要在Class
个对象上使用自定义属性,你可以将其用作NSSortDescriptor
的关键字。不幸的是,没有真正的方法可以将方法/类别添加到Class
个对象。
所以我可能会做的是使用NSStringFromClass()
将Class
个对象转换为字符串,然后使用NSString
类别添加自定义比较器方法(类似compareToClass:
})将字符串转换回Class
,进行子类确定,然后返回适当的排序常量。
从那里,您可以使用NSArray
的{{1}}方法让它们按顺序排列。