0

我在使用 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 上的问题,还是我错过了什么?

// 编辑 1:为 p 命令添加日志: 在此处输入图像描述

4

0 回答 0