1
Swift 3.0に切り替わり、それに伴ってNSDateがDateに変更されたので、クラスはもはやNSCopyingプロトコルに準拠しなくなりました。Swift 3.0のDate.copy()
let newDate = oldDate.copy()
しかし、今のコンパイラエラーを返します。
はスウィフト2では、これは有効でした。
この場合、Dateオブジェクトを複製する最も良い方法は何ですか?
let newDate = Date(timeIntervalSince1970: oldDate.timeIntervalSince1970)
これはトリックですが、特に優雅に見えません。また、TimeIntervalがDoubleであるため、潜在的に(理論的に)精度が低下する可能性があります(Dateオブジェクトが内部で使用するか、常にDoubleを使用するかを確認する方法はありません)。
あなたの答えは正しいですが、もしあなたが嫌なことがあったとしても、let newDate = ((oldDate as NSDate).copy())を!日付 ':) – Grimxn