Tôi có rất nhiều trường ngày trong mô hình cơ sở dữ liệu của mình. CoreData cho phép sử dụng NSDate hoặc TimeInterval để lưu ngày tùy thuộc vào tùy chọn "Sử dụng Scalar Type".Sử dụng ngày của Swift với CoreData
Tuy nhiên cả hai tùy chọn là xấu đối với tôi kể từ khi tôi muốn sử dụng ngày càng Date đối tượng. Vì NSDate không được chuyển đổi hoàn toàn thành Date
Tôi phải truyền/chuyển đổi các giá trị thành Date
hoặc để triển khai rất nhiều trình cài đặt/getters tùy chỉnh trong các lớp NSManagedObject của tôi.
Tôi đã cố gắng sử dụng ValueTransformer
nhưng không hoạt động với các lớp không phải @ objc như Date
.
Vì vậy, có cách đơn giản để lưu và nhận các giá trị Date
đến/từ CoreData?
Đó là cách duy nhất, trong Xcode 8. Gửi yêu cầu nâng cao với Apple và có thể nó sẽ được cập nhật trong tương lai. –
Tôi vừa mới nhận thấy bạn đã viết một cuốn sách về CoreData. Vì vậy, có vẻ như không có ý nghĩa để chờ đợi một giải pháp khác :) Cảm ơn một lần nữa. – Avt
Còn tùy chọn để đặt "Codegen" thành "Manual/None" thì thay vì tự tạo toàn bộ lớp, chỉ cần chọn mô hình của bạn ở bên trái và từ menu chọn "Editor -> Create NSManagedObjectSubclass"? Mà tạo ra các lớp học cho bạn, sau đó tất cả các bạn phải làm là thay đổi NSDate của ngày. Bạn sẽ phải làm điều này mỗi khi bạn cập nhật mô hình. – oyalhi