2012-02-10 36 views
1

在我的NSArray中,我有两种类型的对象,比方说A类和B类的对象。 我想通过比较类A的“startingDate”属性和类B的“endingDate”属性来排序这些对象。我不知道如何根据不同类别的两个不同属性进行比较。如何在NSArray中排序两个不同的对象?

这样做的最好方法是什么?

回答

2

块是你想要什么,看看这个问题: How to sort an NSMutableArray with custom objects in it?

在块例子对这个问题,只是有A级使用STARTINGDATE和B类使用终止日期。

+0

是的,我看到了,但所有块方法都比较相同类型的对象。我的意思是块的参数是id obj1和id obj2,但是它们被转换为相同的类。现在我有两种不同类型的对象,不会造成问题吗?我怎么知道哪一个参数投给我的第一堂课? – aslisabanci 2012-02-10 17:08:26

+1

你可以通过使用[[(obj1/obj2)class] isSubclassofClass:[TargetClass class]]来检查什么样的类obj1和obj2,然后进行适当的处​​理。 – 2012-02-10 17:25:17

+0

当然,但这样做有点麻烦。如果没有更好的选择,我会这样做,谢谢。 – aslisabanci 2012-02-10 17:31:03

0

我会建议一个if/else块和使用的语句

[myObject的isKindOfClass:[ClassA类]

它返回一个BOOL

如果” d(或连带),Apple建议使用

[myObject respondsToSelector:@sel ector(startingDate)]

其中还返回一个BOOL。

块在这种情况下并不真正相关;你可以在普通的方法实现,块,for/while循环或其他任何地方使用这种设计模式。

相关问题