swift - iOS 使用 dateComponent(_:from:to:) 的天数差异 - nil 对结果日意味着什么?

我正在计算两个 Date 之间的差异:

let diff = Calendar.current.dateComponents([.day], from: oldDate, to newDate)

结果我得到了一个 DateComponents ,其中 day 属性是可选的,文档并没有说在这个计算中保证有一个非零 day ,所以我想知道我是否可以假设 day 在这种情况下永远不会是 nil,即使两个 Date 相同,day 也应该是 0 而不是 nil;或者,是否有可能有一个等于 nilday

谢谢!

回答1

我会说函数调用的合同是模棱两可的。 DateComponent 的属性都是可选的。当您要求时,它似乎应该在 days 属性中返回一个 value ,但我仍然会进行防御性编码。

我将强制转换运算符称为“crash if nil”运算符,因为它就是这样做的。

相似文章

最新文章