Tôi muốn lưu & retrive thời điểm hiện tại (nếu hôm nay) hoặc ngày của các lưu ý tạo ra trong Core DataLàm thế nào để tiết kiệm ngày và thời gian khi một đối tượng cốt lõi Dữ liệu được tạo ra
hãy hướng dẫn cho tôi về cách tôi có thể làm điều này.
Tôi muốn lưu & retrive thời điểm hiện tại (nếu hôm nay) hoặc ngày của các lưu ý tạo ra trong Core DataLàm thế nào để tiết kiệm ngày và thời gian khi một đối tượng cốt lõi Dữ liệu được tạo ra
hãy hướng dẫn cho tôi về cách tôi có thể làm điều này.
Thực hiện một thực thể Core Data gọi Note, cung cấp cho nó một thuộc tính gọi là timestamp Set nó để gõ ngày.
Khi tạo một ghi chú mới gán cho nó thời gian hiện tại:
[note setTimeStamp:[NSDate date]];
Persist Note, đó là nó.
Vấn đề là bạn sẽ phải nhớ để làm điều này mỗi khi bạn crate một Note mới. awakeFromInsert là một nơi tốt hơn cho nó –
Bạn có một thực thể Note
với thuộc tính created
?
Set giá trị mặc định để now()
Sửa
Hãy đi rằng việc thiết now()
như là mặc định có nghĩa là nó sẽ sử dụng thời gian xây dựng, không phải là thời gian hiện tại. Nếu bạn muốn thiết lập nó đúng - bạn cần sử dụng một lớp con NSManagedObject.
Bạn có thể tùy chỉnh NSManagedObject lớp con của bạn thiết lập một thuộc tính càng sớm càng được chèn vào một bối cảnh bằng cách ghi đè các -awakeFromInsert
phương pháp:
@interface Person : NSManagedObject
@property (nonatomic, copy) NSDate *creationDate; // modeled property
@end
@implementation Person
@dynamic creationDate; // modeled property
- (void)awakeFromInsert
{
[super awakeFromInsert];
self.creationDate = [NSDate date];
}
@end
Lưu ý rằng creationDate
trên là một tài sản của Core Data mô hình loại thuộc tính "ngày ", do đó, các phương thức truy cập của nó được tạo tự động. Đảm bảo đặt tên lớp NSManagedObject tùy chỉnh của tổ chức của bạn một cách thích hợp.
Tôi thích cách tiếp cận này, đặc biệt là kể từ khi tôi thực hiện một lớp trừu tượng với tài sản này trong nó. Bằng cách đó, tất cả các mô hình của tôi sử dụng giá trị được tạo/sửa đổi sẽ tự động được xử lý với rất ít mã. –
Đây là cách tiếp cận tốt hơn. Cộng với đó là một trong những khuyến cáo của Apple. – dbarros
Nếu bạn chọn tạo lớp con NSManagedObject của bạn với các giá trị nguyên thủy, thì bạn sẽ phải làm một cái gì đó như self.creationDate = [NSDAte timeIntervalSinceReferenceDate]; –
Nếu bạn làm theo hướng dẫn về Dữ liệu cốt lõi, nó sẽ hướng dẫn bạn cách thực hiện. – BoltClock
bạn có thể cho tôi một số liên kết ..... có ví dụ về nó không. – user440485
Google là bạn của bạn - https://developer.apple.com/library/ios/#documentation/DataManagement/Conceptual/iPhoneCoreData01/Introduction/Introduction.html – Abizern