1
由于切换到Swift 3.0,并且随着NSDate到Date的更改,该类不再符合NSCopying协议。Swift 3.0中的Date.copy()
在斯威夫特2,这是有效的:
let newDate = oldDate.copy()
但现在返回一个编译器错误。
在这种情况下,复制Date对象的最佳方法是什么?
let newDate = Date(timeIntervalSince1970: oldDate.timeIntervalSince1970)
这将做到这一点,但它似乎并不特别优雅。当TimeInterval是Double(并且我们无法确认Date对象内部使用 - 或始终使用 - Double)时,它可能(理论上)容易丢失精度。
你的答案是正确的 - 但如果你是变态,你也可以说'让newDate = ((oldDate as NSDate).copy())as!日期:) – Grimxn