自从切换到 Swift 3.0,以及随之而来的 NSDate 更改为 Date,该类不再符合 NSCopying 协议。
在 Swift 2 中,这是有效的:
let newDate = oldDate.copy()
但现在返回编译器错误。
在这种情况下,复制 Date 对象的最佳方法是什么?
let newDate = Date(timeIntervalSince1970: oldDate.timeIntervalSince1970)
这可以解决问题,但它似乎并不特别优雅。并且它可能(理论上)容易受到精度损失的影响,因为 TimeInterval 是 Double (我们无法确认 Date 对象内部使用 - 或将始终使用 - Double)。