我在使用 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
我从 no are 中得到一个可选值,当用!= nil
它测试时返回一个值,当用它测试时.isComplete()
返回另一个值(isComplete 方法在图像中)。
所有打印都在代码的 * 行上完成。
奇怪的是,在调试器控制台中,有时在不是的范围内我得到 nil。
我的问题是:这是 Xcode 上的问题,还是我错过了什么?