2012-04-12 43 views

回答

3

您可以使用描述符或使用比較器對數組進行排序,無論您感覺何種舒適。下面是使用比較的例子:

NSArray *sortedArray = [myArray sortedArrayUsingComparator: ^(id obj1, id obj2) { 
    return [[obj1 date] compare:[obj2 date]]; 
}]; 
+1

很好的答案。但是,考慮到它們是字典,它本身沒有'date'屬性,所以你必須使用'[obj1 objectForKey:@「date」]'和'obj2'。 – 2012-04-12 03:13:21

+0

或者你可以用你所傳遞的對象類型 – aryaxt 2012-04-12 03:28:10

+0

@aryaxt替換id,塊的簽名由'-sortedArrayUsingComparator:'簽名設置。此外,使用'NSDictionary *'而不是'id'將無助於使用虛構的'-date'方法。 – 2012-04-13 02:59:15

0

這裏的排序描述符選項:

// Adjust the 'ascending' option to invert the sort order.  
NSSortDescriptor *dateSortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"date" ascending:YES]; 
// The sort descriptors have to go into an array. 
NSArray *sortDescriptors = [NSArray arrayWithObject:dateSortDescriptor]; 

NSArray *sortedArray = [myArray sortedArrayUsingDescriptors:sortDescriptors]; 

您還可以在那種地方,如果你使用的是NSMutableArray,並不需要保持原有的訂購。