I have an NSMutableArray with NSDictionary's in them. Each NSDictionary has an Key/Value of combatDate = 1234 for example. This value is the seconds since the game was started. The value in the dict is an NSNumber. I am trying to sort the NSMutableArray by the different values in the NSDictionary 'combatDate' from lowest to highest value. I am using this sort code which is not working. Code: NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"combatDate" ascending:YES]; [tempArray sortedArrayUsingDescriptors:[NSArray arrayWithObjects:descriptor,nil]]; newArray = [tempArray copy]; But when I do an NSLog to check the order of the new array it is not correct, here is the full list What am I missing?