在Xcode11中甚至在Xcode11.1上处理日期时遇到问题。调试器(在某种程度上)自相矛盾。
您看到的是,当我打印selectedRanges的详细信息(这是具有两个属性的DateRanges的列表:)
struct DateRange: Equatable {
var start: Date
var end: Date?
}
它向我显示了存储的正确值,但是当我执行以下操作时:
let a = selectedRanges.filter({
guard $0.isComplete() == true else { return false }
guard !date.isBetween($0.start, and: $0.end!) else { return false }
guard let firstSelectedRange = selectedRanges.first, firstSelectedRange.isComplete() == false else { return false }
*guard firstSelectedRange.start > $0.start && date < $0.start else { return false }
return true
})
并打印firstSelecteRange.end
,我得到一个可选值,当用!= nil
测试时,它返回一个值,当用.isComplete()
测试时,返回另一个值(isComplete方法在图片)。
所有打印均已在代码的*行上完成。
我的问题是:这是Xcode上的问题,还是我错过了什么?