Дата выпуска Xcode 11, 11.1 на Мохаве - противоречие отладчика
У меня проблема при работе с датами в 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 или я что-то пропускаю?