check this , i have tested your code
NSArray *stringDateArray = @[@"05/15/2014",@"05/12/2014",@"02/20/2014",@"05/12/2013",@"10/11/2013"];
NSMutableArray *dateArray = [NSMutableArray arrayWithCapacity:[stringDateArray count]];
for (NSString *dateString in stringDateArray) {
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"MM/dd/yyyy"];
[dateArray addObject:@{@"date":[dateFormatter dateFromString:dateString]}];
}
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"date" ascending:YES];
NSArray *orderedArray = [dateArray sortedArrayUsingDescriptors:@[sortDescriptor]];
NSLog(@"ordered array--%@",orderedArray);
ordered array--(
{
date = "2013-05-11 18:30:00 +0000";
},
{
date = "2013-10-10 18:30:00 +0000";
},
{
date = "2014-02-19 18:30:00 +0000";
},
{
date = "2014-05-11 18:30:00 +0000";
},
{
date = "2014-05-14 18:30:00 +0000";
}
)
with compare selector
NSArray *stringDateArray = @[@"05/15/2014",@"05/12/2014",@"02/20/2014",@"05/12/2013",@"10/11/2013"];
NSMutableArray *dateArray = [NSMutableArray arrayWithCapacity:[stringDateArray count]];
for (NSString *dateString in stringDateArray) {
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"MM/dd/yyyy"];
[dateArray addObject:[dateFormatter dateFromString:dateString]];
}
NSArray *orderedArray = [dateArray sortedArrayUsingSelector:@selector(compare:)];
NSLog(@"ordered array--%@",orderedArray);
ordered array--(
"2013-05-11 18:30:00 +0000",
"2013-10-10 18:30:00 +0000",
"2014-02-19 18:30:00 +0000",
"2014-05-11 18:30:00 +0000",
"2014-05-14 18:30:00 +0000"
)