У меня есть массив как:Как отсортировать дату?
<__NSArrayM 0x79f3a4a0>(
{
"act_date" = "02/03/2015";
"act_id" = 3;
"act_name" = test2;
},
{
"act_date" = "03/03/2015";
"act_id" = 4;
"act_name" = test3;
},
{
"act_date" = "01/03/2015";
"act_id" = 5;
"act_name" = test1;
}
)
я хочу, чтобы отсортировать массив с датой. я попробовал этот метод:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"MM/dd/yyyy"];
NSMutableArray *tempArray = [NSMutableArray array];
for (NSString *dateString in tblList)
{
NSDate *date = [formatter dateFromString:[dateString valueForKey:@"act_date"]];
[tempArray addObject:date];
}
[tempArray sortUsingComparator:^NSComparisonResult(NSDate *date1, NSDate *date2) {
// return date2 compare date1 for descending. Or reverse the call for ascending.
return [date2 compare:date1];
}];
Но это возвращает только массив с датой, как я могу добавить все данные с отсортированного массива дат ??
Ваша проблема не в датах, а в том, что у вас есть набор словарей. См. Этот https://stackoverflow.com/questions/14193077/sorting-array-of-multiple-dictionaries –
. Результат возвращает только массив с датой, потому что вы добавляете только значение «act_date» в tempArray, чтобы добавить ваш объект в tempArray. В sortUsingComparator: return [yourObject2.act_date compare yourObject1.act_date] –
Вместо работы со словарями, конвертируйте их в объекты. Obj-C не является javascript, поэтому вам не следует работать с объектами, преобразованными в словари. – Sulthan