1
我有一個存儲關於我的照片在覈心數據中的信息的實體。該實體的一個屬性是「lastSeen」,它存儲了上次看到圖片的日期和時間。從核心數據查詢NSDate對象
我想查詢我的數據庫,只查看過去48小時內看到的圖片。我怎麼能這樣做?
我知道我需要使用一些方法,如timeIntervalSinceNow和NSPredicte,但林不知道這個查詢的語法是怎麼樣的。
任何幫助表示讚賞。
謝謝!
我有一個存儲關於我的照片在覈心數據中的信息的實體。該實體的一個屬性是「lastSeen」,它存儲了上次看到圖片的日期和時間。從核心數據查詢NSDate對象
我想查詢我的數據庫,只查看過去48小時內看到的圖片。我怎麼能這樣做?
我知道我需要使用一些方法,如timeIntervalSinceNow和NSPredicte,但林不知道這個查詢的語法是怎麼樣的。
任何幫助表示讚賞。
謝謝!
NSDate *minimalDate = [NSDate dateWithTimeIntervalSinceNow:-172800]; // 48h = 48*60*60 seconds
NSFetchRequest *request = [[NSFetchRequest alloc] init];
request.entity = [NSEntityDescription entityForName:@"Photo" inManagedObjectContext:context];
request.sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"viewDate" ascending:NO]];
request.predicate = [NSPredicate predicateWithFormat:@"viewDate > %@", minimalDate];
request.fetchBatchSize = 20;
NSFetchedResultsController *frc = [[NSFetchedResultsController alloc] initWithFetchRequest:request managedObjectContext:context sectionNameKeyPath:nil cacheName:nil];
[request release];
self.fetchedResultsController = frc;
[frc release];
附錄
下面是如何創建的viewDate屬性。
在myProjectName.xcdatamodeld
中選擇Photo實體。 添加名爲'viewDate'的屬性並鍵入'Date'。 選擇它,然後點擊編輯>複製。
轉到Photo.h
,然後單擊想要生成屬性的地方。 選擇此特殊粘貼選項: 編輯>'粘貼屬性界面'。 應該產生這行代碼:
@property (nonatomic, retain) NSDate * viewDate;
在Photo.m
同樣產生:
@dynamic viewDate;
我這樣設置在我PictureViewController的的loadView日期:
self.photo.viewDate = [NSDate date];
Joost的謝謝非常!!這正是我所需要的。 我很感謝你的時間! –
我的榮幸! PS - 不要忘記將更改的viewDate屬性保存到磁盤! 爲此,您可以從AppDelegate複製saveContext方法。 – Joost