【发布时间】:2012-02-10 15:29:25
【问题描述】:
在我的 NSArray 中,我有两种类型的对象,比如说 A 类和 B 类的对象。 我想通过将 A 类的“startingDate”属性与 B 类的“endingDate”属性进行比较来对这些对象进行排序。我不知道如何根据不同类的两个不同属性进行比较。
最好的方法是什么?
【问题讨论】:
标签: ios sorting comparison nsarray
在我的 NSArray 中,我有两种类型的对象,比如说 A 类和 B 类的对象。 我想通过将 A 类的“startingDate”属性与 B 类的“endingDate”属性进行比较来对这些对象进行排序。我不知道如何根据不同类的两个不同属性进行比较。
最好的方法是什么?
【问题讨论】:
标签: ios sorting comparison nsarray
块是你想要的,看看这个问题: How to sort an NSMutableArray with custom objects in it?
在该问题的块示例中,只让 A 类使用开始日期,B 类使用结束日期。
【讨论】:
isKindOfClass,因为这两个对象都可能是NSObject 的子类,或者它们可能是其他更高级别对象的子类。
我会推荐一个 if/else 块和语句的使用
[myObject isKindOfClass:[ClassA 类]]
返回 BOOL
如果您愿意(或结合使用),Apple 建议使用
[myObject respondsToSelector:@selector(startingDate)]
这也返回一个 BOOL。
在这种情况下,块并不真正相关;您可以在普通方法实现、块、for/while 循环或其他任何地方使用此设计模式。
【讨论】: