2011-02-28 49 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; 
}