按两个字段排序Swift数组

时间:2017-10-08 14:38:44

标签: swift

我有这个问题。我有这个带有两个位置字段的向量:

fecha:  9/10/2017
turno:  0
fecha:  9/10/2017
turno:  6
fecha:  9/10/2017
turno:  17
fecha:  10/10/2017
turno:  17

为了订购,我使用这段代码:

self.TodasMisCitas.sort {
    if ($0.fecha as Date == $1.fecha as Date) {
        return ($0.turno) > ($1.turno)
    }
    return ($0.fecha) > ($1.fecha)
}

这是输出:

i don't upload image :( see in this link please

对我来说正确的输出是:

martes 10/10/2017
lunes 09/10/2017 a las 10:00
lunes 09/10/2017 a las 11:30
lunes 09/10/2017 a las 16:00

有人知道发生了什么事吗?

1 个答案:

答案 0 :(得分:0)

当您将日期与==进行比较时,您应该考虑当天而不是整个日期。我无法编译,但我认为它应该是这样的:

self.TodasMisCitas.sort {
    if Calendar.current.compare($0.fecha, to: $1.fecha, toGranularity: .day) == .orderedSame {
        return ($0.turno) > ($1.turno)
    }
    return ($0.fecha) > ($1.fecha)
}