0
我正在構建一個核心數據應用程序,並需要基於它們的日期來獲取對象。如果這些對象的日期與全局「selectedDate」同日,則這些對象將顯示在UITableView中,用戶可以更改並可能會經常這樣做。造成這種情況的代碼如下:如何使用NSFetchRequest
-(NSDate *)dateByMovingToEndOfDay:(NSDate *)date {
unsigned int flags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
NSDateComponents* parts = [[NSCalendar currentCalendar] components:flags fromDate:date];
[parts setHour:23];
[parts setMinute:59];
[parts setSecond:59];
return [[NSCalendar currentCalendar] dateFromComponents:parts];
}
-(NSDate *)dateByMovingToBeginningOfDay:(NSDate *)date {
unsigned int flags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
NSDateComponents* parts = [[NSCalendar currentCalendar] components:flags fromDate:date];
[parts setHour:0];
[parts setMinute:0];
[parts setSecond:0];
return [[NSCalendar currentCalendar] dateFromComponents:parts];
}
我的問題是哪種方法會更有效:
執行一個每次提取請求用戶更改選擇的日期和使用謂詞只得到它的對象最新的是在同一天selectedDate
或者
抓取在啓動時所有managedObjects,每次用戶更改所選的日期時間排序將它們存儲在一個數組,然後通過數組,創建一個新的僅包含正確對象的陣列