Я пытаюсь создать UITableView
, который заполняется объектами на выбранную дату (в частности, yesterday
, today
и tomorrow
). В моей модели CoreData объект, о котором идет речь, является свойством date with type
Date`.Как ограничить FetchedResultsController объектам в данный день
Чтобы получить yesterday
, today
и tomorrow
я делаю это (как это предписано this WWDC session):
var today = Date()
var yesterday = calendar.date(byAdding: .day, value: -1, to: self.date)
var tomorrow = calendar.date(byAdding: .day, value: 1, to: self.date)
и выполнять:
today = calendar.startOfDay(for: today)
yesterday = calendar.startOfDay(for: yesterday)
tomorrow = calendar.startOfDay(for: tomorrow)
После того, как я получаю все даты, я не» я знаю, что делать. В настоящее время моего неправдоподобным контроллер результатов выглядит следующим образом:
lazy var fetchedResultsController: NSFetchedResultsController<Entry> = {
let fetchRequest: NSFetchRequest<Entry> = Entry.fetchRequest()
// Configure Fetch Request
fetchRequest.sortDescriptors = [NSSortDescriptor(key: "name", ascending: true)]
// Create Fetched Results Controller
let fetchedResultsController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: app_delegate.persistentContainer.viewContext, sectionNameKeyPath: nil, cacheName: nil)
// Configure Fetched Results Controller
fetchedResultsController.delegate = self
return fetchedResultsController
}()
Как ограничить fetchedResultsController
к одной из этих дат, и, если это возможно, я делаю, я делаю это с помощью Calendar
сек метода: isDateInToday()
?
Вы должны использовать предикат ('NSPredicate') в запросе выборки, но детали зависят от того, как вы хотите использовать эти даты. Со вчерашнего дня? Со вчерашнего дня? –
Это были три отдельных контроллера вида, каждый из которых представлял все записи вчера, сегодня и вчера, соответственно. – jjatie