iOS diff in days using dateComponent(_:from:to:) - nil 对结果日意味着什么?

iOS diff in days using dateComponent(_:from:to:) - what does nil mean for the result day?

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

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

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

谢谢!

我会说函数调用的约定不明确。 DateComponent 的属性是 所有 可选的。它似乎应该 return days 属性 中的一个值,当这是你要求的时候,但我仍然会防御性地编写代码。

我将 force-cast 运算符称为“如果为 nil 则崩溃”运算符,因为它就是这样做的。