2017-10-08 35 views
0

我有这个问题。我有两个字段位置这一载体:由两个字段排序的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 

有人知道发生了什么?

+0

那么你到底想要什么样的工作? – Alexander

+0

当你用==比较日期时,也许你应该考虑那天不是整个日期。 – TomCobo

+1

解释什么是“fecha”。你的代码应该可以工作,但是如果'fecha'不能保持小时/分钟(而'Date'对象),但是它不会。你的意思是说,如果日/小时/分钟是相同的,那么你检查'turno',对吧? – Larme

回答

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) 
}