,以对具有bool,整数和日期的自定义结构进行分类。我成功地使用了下面的语法来获得布尔值,它适用于"新娘"one_answers"新郎"案例。当我尝试为2个日期变量添加排序时,我得到了错误错误:
"二进制运算符'>'不能应用于两个"日期?"操作数"
i的印象是,日期值可以与正常 > < ==
标准进行比较,但是我认为我会遇到错误,因为值未解开?如果那是正确的,我认为我不能做一个日期吗?进入未包装的日期,因此我不确定如何比较这些值。
var sortedImages = [submitted_image]()
switch sortOption {
case .brideInPic:
print("bride")
sortedImages = Images.sorted(by: {$0.brideInPic && !$1.brideInPic})
print("sortedImages: (sortedImages.count), Images: (Images.count)")
case .groomInPic:
print("groom")
sortedImages = Images.sorted(by: {$0.groomInPic && !$1.groomInPic})
print("sortedImages: (sortedImages.count), Images: (Images.count)")
case .create_dt:
print("create")
sortedImages = Images.sorted(by: {$0.create_dt > $1.create_dt})
}
无法直接比较选项(比较SE-0121 - 删除可选比较操作员(。但是您可以使用nil-coalescing oterator ??
提供无创建日期的条目的默认日期:
Images.sorted(by: {$0.create_dt ?? .distantPast > $1.create_dt ?? .distantPast })
使用.distantPast
,没有创建日期的条目已排序到列表的末尾。使用.distantFuture
,它们将被整理到列表的开始。