在我的NSArray中,我有两种类型的对象,比方说A类和B类的对象。 我想通过比较类A的“startingDate”属性和类B的“endingDate”属性来排序这些对象。我不知道如何根据不同类别的两个不同属性进行比较。如何在NSArray中排序两个不同的对象?
这样做的最好方法是什么?
在我的NSArray中,我有两种类型的对象,比方说A类和B类的对象。 我想通过比较类A的“startingDate”属性和类B的“endingDate”属性来排序这些对象。我不知道如何根据不同类别的两个不同属性进行比较。如何在NSArray中排序两个不同的对象?
这样做的最好方法是什么?
块是你想要什么,看看这个问题: How to sort an NSMutableArray with custom objects in it?
在块例子对这个问题,只是有A级使用STARTINGDATE和B类使用终止日期。
我会建议一个if/else块和使用的语句
[myObject的isKindOfClass:[ClassA类]
它返回一个BOOL
如果” d(或连带),Apple建议使用
[myObject respondsToSelector:@sel ector(startingDate)]
其中还返回一个BOOL。
块在这种情况下并不真正相关;你可以在普通的方法实现,块,for/while循环或其他任何地方使用这种设计模式。
是的,我看到了,但所有块方法都比较相同类型的对象。我的意思是块的参数是id obj1和id obj2,但是它们被转换为相同的类。现在我有两种不同类型的对象,不会造成问题吗?我怎么知道哪一个参数投给我的第一堂课? – aslisabanci 2012-02-10 17:08:26
你可以通过使用[[(obj1/obj2)class] isSubclassofClass:[TargetClass class]]来检查什么样的类obj1和obj2,然后进行适当的处理。 – 2012-02-10 17:25:17
当然,但这样做有点麻烦。如果没有更好的选择,我会这样做,谢谢。 – aslisabanci 2012-02-10 17:31:03