2011-02-28 67 views

回答

7
NSArray *sorted_bookings = [myUnsortedArray sortedArrayUsingFunction:Sort_Bookingdate_Comparer context:self]; 

NSInteger Sort_Bookingdate_Comparer(id id1, id id2, void *context) 
{ 
    // Sort Function 
    Booking* booking1 = (Booking*)id1; 
    Booking* booking2 = (Booking*)id2; 


    return ([booking1.BOOKING_DATE compare:booking2.BOOKING_DATE]); 
} 

這我用來通過bookingdate預訂排序。 Booking是一個包含名爲BOOKING_DATE的綜合實例變量的類。

+0

我想知道它是否返回了一個有序數組,或者它是否對數組(myUnsortedArray)本身進行排序。 Iguess你的例子答案。 TY! – Martha 2011-02-28 20:39:08

+0

在我的情況下,我想要一個新的數組。但是如果你的數組是一個NSMutableArray,那麼只有一個實例方法可以對數組進行排序。就像在Bogatyr的例子中一樣 – hol 2011-02-28 20:49:38

1

使用的NSMutableArray關閉類似物:

[opponentMatchDicts sortUsingFunction:compareMatchByDate context:nil]; 
... 


static int compareMatchByDate(id m1, id m2, void *context) 
{ 
    NSDictionary *mDict1 = (NSDictionary *) m1; 
    NSDictionary *mDict2 = (NSDictionary *) m2; 
    NSDate *date1 = [mDict1 objectForKey:kMatchNSDate]; 
    NSDate *date2 = [mDict2 objectForKey:kMatchNSDate]; 

    int rv = [date1 compare:date2]; 
    return rv; 
}