Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 惰性地图集合中的swift按日期排序_Ios_Swift_Sorting - Fatal编程技术网

Ios 惰性地图集合中的swift按日期排序

Ios 惰性地图集合中的swift按日期排序,ios,swift,sorting,Ios,Swift,Sorting,我正在使用lazy map collection保存数据,并使用此默认函数通过使用名称(这是一个现有字段)对数组进行排序。现在,我希望使用已保存在其中一个参数中的日期对其进行排序。我该怎么做呢 let resultingSecs = secs.values.map { uts in (uts.0, uts.1.sort(<)) }.sort { (luts, ruts) -> Bool in luts.0.name < ruts.0.na

我正在使用lazy map collection保存数据,并使用此默认函数通过使用名称(这是一个现有字段)对数组进行排序。现在,我希望使用已保存在其中一个参数中的日期对其进行排序。我该怎么做呢

let resultingSecs = secs.values.map { uts in
        (uts.0, uts.1.sort(<))
    }.sort { (luts, ruts) -> Bool in
        luts.0.name < ruts.0.name
    }
我现在尝试使用上面的代码

let resultingSecs=secs.values.map{uts in
let resultingSecs = secs.values.map { uts in
    (uts.0, uts.1.sort(<))
}.sort { (luts, ruts) -> Bool in
    var date1 = luts.0.updated_at
    var date2 = ruts.0.updated_at

    var dateFormatter = NSDateFormatter()
    dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
    let status:Bool = dateFormatter.dateFromString(date1)?.compare(dateFormatter.dateFromString(date2)!) == NSComparisonResult.OrderedAscending
return status
}
(uts.0,uts.1.排序(Bool-in var date1=luts.0.0更新时间 var date2=ruts.0.0更新时间 var dateFormatter=NSDateFormatter() dateFormatter.dateFormat=“yyyy-MM-dd HH:MM:ss” let状态:Bool=dateFormatter.dateFromString(date1)?.compare(dateFormatter.dateFromString(date2)!)==NSComparisonResult.OrderedAsceding 返回状态 }

使用此代码解决了此问题。问题是我的日期1的值和日期2即将到来

我不理解“我想使用已保存在其中一个参数中的日期对其进行排序”。您想使用什么作为排序标准?我有一个具有不同时间线(用户)的数组数据,目前它们是按用户名排序的,如代码中所示。我想按日期对它们进行排序…您的代码似乎足够好。不过,我会使用
dateFormatter.dateFromString(date1)!而不是?
,因为它使dateFromString为null时的行为非常违反直觉。而且在代码中似乎暗示这种情况不应该发生现在它可以工作了,谢谢@YoavSchwartz
let resultingSecs = secs.values.map { uts in
    (uts.0, uts.1.sort(<))
}.sort { (luts, ruts) -> Bool in
    var date1 = luts.0.updated_at
    var date2 = ruts.0.updated_at

    var dateFormatter = NSDateFormatter()
    dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
    let status:Bool = dateFormatter.dateFromString(date1)?.compare(dateFormatter.dateFromString(date2)!) == NSComparisonResult.OrderedAscending
return status
}