NSArray of Dates sort

Consider this array. It has no keys, so I am not sure I can use NSSortDescriptor. What would be the best method to sort them?

(
    "Thursday, July 30, 2009",
    "Monday, September 07, 2009",
    "Wednesday, September 09, 2009",
    "Friday, August 14, 2009",
    "Saturday, September 05, 2009",
    "Monday, August 10, 2009",
    "Thursday, July 23, 2009",
    "Monday, October 12, 2009",
    "Friday, October 16, 2009",
    "Monday, August 17, 2009",
    "Tuesday, October 13, 2009",
    "Wednesday, September 30, 2009",
    "Sunday, August 16, 2009",
    "Thursday, August 27, 2009",
    "Monday, August 31, 2009",
    "Saturday, August 15, 2009",
    "Thursday, August 06, 2009",
    "Saturday, September 26, 2009",
    "Tuesday, September 29, 2009",
    "Tuesday, September 15, 2009",
    "Tuesday, September 01, 2009"
)

  • NSDictionary keys sorted by value numerically
  • How to sort an NSMutableArray of objects by a member of its class, that is an int or float
  • How to sort a NSArray alphabetically?
  • Swift/Firebase - Sort posts in tableview by date
  • How to sort NSArray of objects based on one attribute
  • Sorting an nsarray of strings not string based
  • 2 Solutions Collect From Internet About “NSArray of Dates sort”

    You can use sortedArrayUsingFunction:

    Here’s some example code.

    NSInteger dateSort(id s1, id s2, void *context)
    {
        NSDateFormatter* format = (NSDateFormatter*)context;
        NSDate* d1 = [format dateFromString:s1];
        NSDate* d2 = [format dateFromString:s2];
    
        return [d1 compare:d2];
    }
    
    ...
    
    -(void)someObjectiveCMethod
    {
        NSDateFormatter* format = [[[NSDateFormatter alloc] init] autorelease];
    
        // Find theses format codes here:
        // http://unicode.org/reports/tr35/tr35-6.html#Date_Format_Patterns
        //
        [format setDateFormat:@"EEEE, MMMM dd, yyyy"];
    
        NSArray* myArray = getMyArray();
        NSArray* sortedArray = [myArray sortedArrayUsingFunction:dateSort context:format];
    }
    

    There are a number of these sorts of sort methods in NSArray. It’s worth looking at those to familiarize yourself with them.

    NSArray * unsortedDates = ...;
    NSArray * sortedDates = [unsortedDates sortedArrayUsingSelector:@selector(compare:)];