2013-01-16 111 views
0

我的iPhone開發人員,我是新來這個技術。我想排序NSMutableArray。在此陣列的每個索引處,都有一個NSMutableDictionary。每個字典都有兩個字段:名稱和日期。我想根據此日期字段對數組進行排序。我的陣列如下所示:排序NSMutable字典的NSMutable陣列

(
    { 
     name : raj 
     date : 20/09/1998 
    } 
    { 
     name : teena 
     date : 21/06/1987 
    } 
) 

我在網上搜索了很多,但找不到合適的答案。請幫助我們。 任何迴應將高度讚賞。

+0

我想什麼你想是好的在這裏描述:[如何排序一個NSMutableArray與自定義對象?](http://stackoverflow.com/questions/805547/how-to-sort-an-nsmutablearray-with-custom-objects-in - 您可以根據您的要求修改答案。 – Bhavin

回答

1
NSSortDescriptor *sortDescriptor; 
sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"date" 
               ascending:YES] autorelease]; 
NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor]; 
self.sortedArray = [self.originalArray sortedArrayUsingDescriptors:sortDescriptors]; 

如果你的日期鍵實際上包含一個Date對象,如果它包含字符串..形式的日期比你將不得不嘗試這個這應該工作..

[resultArray sortUsingComparator:^NSComparisonResult(id a, id b) { 

    static NSDateFormatter *dateFormatter = nil; 

    if (!dateFormatter) { 
     dateFormatter = [[NSDateFormatter alloc] init]; 
     dateFormatter.dateFormat = @"mm/dd/yyyy hh:mm:ss"; 
    } 

    NSString *date1String = [a valueForKey:@"StartDate"]; 
    NSString *date2String = [b valueForKey:@"StartDate"]; 

    NSDate *date1 = [dateFormatter dateFromString:date1String]; 
    NSDate *date2 = [dateFormatter dateFromString:date2String]; 

    return [date1 compare:date2]; 
    }]; 
+0

感謝哥們。將嘗試上面的代碼... –