• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 如何在ios中的NSMutableArray中对时间进行排序

[复制链接]
菜鸟教程小白 发表于 2022-12-13 12:04:21 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我在 NSMutableArray 中有一组字典。现在我想按时间升序和降序排序这是我的数组值。

(
    {
    StartTime = "09:00 AM";
    TravelsName = "ABC Travels";
},
    {
    StartTime = "07:30 AM";
    TravelsName = "XYZ Travels ";
},
    {
    StartTime = "06:45 PM";
    TravelsName = "GSP  Travels";
},
    {
    StartTime = "05:00 PM";
    TravelsName = "Madura  Travels";
},
    {
    StartTime = "12:45 AM";
    TravelsName = "MJT Travels";
},
    {
    StartTime = "12:45 PM";
    TravelsName = "OPR Travels";
},
    {
    StartTime = "01:00 AM";
    TravelsName = "VMS Travels";
}
)

请帮助我,我已经对 NSMutableArray 中的 NSDate 集进行了排序 通过下面的代码

//To sort the Time Array
dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat"hh:mm a"];

    NSMutableArray *dates = [NSMutableArray arrayWithCapacity:times.count];

    for (NSString *timeString in times)
    {
        NSDate *date = [dateFormatter dateFromString:timeString];
        [dates addObject:date];
    }
    [dates sortUsingSelectorselector(compare];

    NSMutableArray *sortedTimes = [NSMutableArray arrayWithCapacity:dates.count];
    for (NSDate *date in dates)
    {
        NSString *timeString = [dateFormatter stringFromDate:date];
        [sortedTimes addObject:timeString];
    }

但我不知道如何对 NSMutableArray 中的字典进行排序帮助我。



Best Answer-推荐答案


最好使用 NSArray 中已经提供的排序方法。应该这样做:

NSArray *stortedArray = [unsortedArray sortedArrayUsingComparator:^NSComparisonResult(NSDictionary *_Nonnull obj1, NSDictionary *_Nonnull obj2) {
        return [obj1[@"StartTime"] comparebj2[@"StartTime"]];
}];

或者如果 StartTime 仍然是一个字符串:

NSArray *stortedArray = [unsortedArray sortedArrayUsingComparator:^NSComparisonResult(NSDictionary *_Nonnull obj1, NSDictionary *_Nonnull obj2) {
    return [[dateFormatter dateFromStringbj1[@"StartTime"]] compare:[dateFormatter dateFromStringbj2[@"StartTime"]]];
}];

要更改升序/降序,您只需在 block 中使用时交换 obj1obj2:

return [obj2[@"StartTime"] comparebj1[@"StartTime"]];

关于ios - 如何在ios中的NSMutableArray中对时间进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33779272/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap