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