Objective c “如何对日期进行排序”;年月日:年月日;关于日期和时间,按降序排列

Objective c “如何对日期进行排序”;年月日:年月日;关于日期和时间,按降序排列,objective-c,sorting,nsdate,nsdateformatter,nscalendar,Objective C,Sorting,Nsdate,Nsdateformatter,Nscalendar,如何排序此数组包含日期和时间,我需要为相同的日期排序,如果我有相同的日期多个条目,我需要根据时间按降序排序,它将按顺序显示所有条目 data= { { dateAndTime = "04/03/2017 09:52 PM"; deviceImage = ""; dialOrReceive = 0; number = "+918839752179"; profi

如何排序此数组包含日期和时间,我需要为相同的日期排序,如果我有相同的日期多个条目,我需要根据时间按降序排序,它将按顺序显示所有条目

    data= {
     {
            dateAndTime = "04/03/2017 09:52 PM";
            deviceImage = "";
            dialOrReceive = 0;
            number = "+918839752179";
            profilePhoto = "";
        },
            {
            dateAndTime = "02/03/2017 06:54 PM";
            deviceImage = "";
            deviceImage = "";
            dialOrReceive = 0;
            number = "+918839752179";
            profilePhoto = "";
        },
            {
            dateAndTime = "04/03/2017 05:36 PM";
            deviceImage = "";
            dialOrReceive = 0;
            number = "+918839752179";
            profilePhoto = "";
        },
            {
            dateAndTime = "03/03/2017 04:48 PM";
            deviceImage = "";
            dialOrReceive = 0;
            number = "+918839752179";
            profilePhoto = "";
        }, {
            dateAndTime = "03/03/2017 06:48 PM";
            deviceImage = "";
            dialOrReceive = 0;
            number = "+918839752179";
            profilePhoto = "";
        },{
            dateAndTime = "02/03/2017 09:36 PM";
            deviceImage = "";
            dialOrReceive = 0;
            number = "+918839752179";
            profilePhoto = "";
        },
}
试试这个

- (void)sortDict {

    NSDictionary *dict = @{
                           @"data" : @[@{
                                           @"dateAndTime" : @"04/03/2017 09:52 PM",
                                           @"deviceImage" : @"",
                                           @"dialOrReceive" : @0,
                                           @"number" : @"+918839752179",
                                           @"profilePhoto" : @""
                                           },
                                       @{
                                           @"dateAndTime" : @"02/03/2017 06:54 PM",
                                           @"deviceImage" : @"",
                                           @"dialOrReceive" : @0,
                                           @"number" : @"+918839752179",
                                           @"profilePhoto" : @""
                                           },
                                       @{
                                           @"dateAndTime" : @"04/03/2017 05:36 PM",
                                           @"deviceImage" : @"",
                                           @"dialOrReceive" : @0,
                                           @"number" : @"+918839752179",
                                           @"profilePhoto" : @""
                                           },
                                       @{
                                           @"dateAndTime" : @"03/03/2017 04:48 PM",
                                           @"deviceImage" : @"",
                                           @"dialOrReceive" : @0,
                                           @"number" : @"+918839752179",
                                           @"profilePhoto" : @""
                                           },
                                       @{
                                           @"dateAndTime" : @"03/03/2017 06:48 PM",
                                           @"deviceImage" : @"",
                                           @"dialOrReceive" : @0,
                                           @"number" : @"+918839752179",
                                           @"profilePhoto" : @""
                                           },
                                       @{
                                           @"dateAndTime" : @"02/03/2017 09:36 PM",
                                           @"deviceImage" : @"",
                                           @"dialOrReceive" : @0,
                                           @"number" : @"+918839752179",
                                           @"profilePhoto" : @""
                                           },
                                       @{
                                           @"dateAndTime" : @"02/03/2017 07:36 AM",
                                           @"deviceImage" : @"",
                                           @"dialOrReceive" : @0,
                                           @"number" : @"+918839752179",
                                           @"profilePhoto" : @""
                                           }
                                       ]
                            };

    NSDateFormatter *formatter = [NSDateFormatter new];
    formatter.dateFormat = @"dd/MM/yyyy hh:mm a";

    NSArray *arr = [dict objectForKey:@"data"];

    arr = [arr sortedArrayUsingComparator:^NSComparisonResult(id  _Nonnull obj1, id  _Nonnull obj2) {

        NSDate *date1 = [formatter dateFromString:[obj1 objectForKey:@"dateAndTime"]];
        NSDate *date2 = [formatter dateFromString:[obj2 objectForKey:@"dateAndTime"]];

        return [date2 compare:date1];
    }];

    NSLog(@"%@", arr);
}

任何尝试,你都尝试了什么?请发布代码段key
data
的对象似乎是数组,而不是字典。您需要将日期字符串映射到
NSDate
才能对数组进行排序。我正在成功地对日期进行排序:NSSortDescriptor*sortOrder=[NSSortDescriptor sortDescriptorWithKey:@“dateAndTime”升序:否];arr=[arr sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortOrder]];这一次我遇到了一些问题:(@kumar什么意思是“化妆单”?谢谢@schmidt9I正在排序,但也不是以正确的方式来的时间没有正确排序@schmidt9@kumar请再说一遍,日期和时间需要什么排序顺序?我需要排序顺序:比如2017年04月03日09:52 PM 2017年03月04日05:36 PM 2017年03月03日06:48 PM 2017年03月03日04:48 PM 2017年03月02日09:36 PM 2017年03月02日06:54PM@kumar好的,我编辑了我的答案,它按照这个顺序输出,我又添加了一条记录来检查AM案例