2012-02-10 34 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循環或其他任何地方使用這種設計模式。

相關問題