2011-01-03 11 views
15

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.

+0

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

+0

bạn có thể cho tôi một số liên kết ..... có ví dụ về nó không. – user440485

+0

Google là bạn của bạn - https://developer.apple.com/library/ios/#documentation/DataManagement/Conceptual/iPhoneCoreData01/Introduction/Introduction.html – Abizern

Trả lời

10

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ó.

+2

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ó –

2

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.

49

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.

+2

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ã. –

+0

Đâ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

+0

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]; –

Các vấn đề liên quan