【问题标题】:How to sort an NSArray of objects by their class?如何按类对对象的 NSArray 进行排序?
【发布时间】:2010-09-16 17:34:57
【问题描述】:

我有一个 NSArray 的对象,它们都是从一个更抽象的类中以不同的类型进行子类化的。

我想按对象的类类型对数组进行排序。例如:

具有 CLASSA CLASSB 和 CLASS C 子类的 CLASSz 的 NSArray

myArray = {C, B, A}

对 myArray 进行降序排序:{A, B, C}

我看到排序描述符,这似乎是正确的路径,但我正在比较 isKindOfClass,它不是属性,因此不能在 NSSortDescriptiors 中使用。

感谢您的帮助。

【问题讨论】:

    标签: cocoa sorting nsarray


    【解决方案1】:

    嗯,我看到的最大障碍是您可能需要在Class 对象上使用自定义属性,您可以将其用作NSSortDescriptor 的键。不幸的是,没有真正的方法可以将方法/类别添加到 Class 对象。

    所以我可能会使用NSStringFromClass() 将您的Class 对象转换为字符串,然后使用NSString 类别添加一个自定义比较器方法(类似于compareToClass:)将字符串转换回Class,进行子类判断,然后返回适当的排序常数。

    从那里,您可以使用NSArraysortedArrayUsingSelector: 方法将它们按顺序排列。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-19
      • 1970-01-01
      • 2011-03-25
      • 1970-01-01
      • 2010-11-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多