У меня есть приложение, которое имеет несколько сущностей базовых данных, таких как «Run, Walk, Cycle, Elliptical», у каждого из которых есть непротиворечивый атрибут, называемый «duration».
Я в порядке с получением результатов от каждой из этих сущностей в пределах диапазона дат и т. Д., Но я пытаюсь сделать один запрос, который проверяет все эти сущности одновременно и производит массив всех длительностей с сегодняшнего дня. .
Я понимаю, что могу сделать это с помощью отдельных запросов для каждой сущности, но я уверен, что должен быть способ сделать это за один вызов? Этот способ кажется действительно трудоемким и, вероятно, требует много памяти?
Я попробовал довольно много предложений и не добиваюсь результата, которого я добиваюсь!
По сути, мне нужно что-то вроде:
let calendar = NSCalendar.current
let dateFrom = NSDate()
let dateTo = calendar.date(byAdding: .day, value: -1, to: dateFrom as Date)
let appDelegate = UIApplication.shared.delegate as! AppDelegate
let context = appDelegate.persistentContainer.viewContext
let request = NSFetchRequest<Run,Cycle,Walk,Elliptical>(entityName: "Run,Cycle,Walk,Elliptical")
request.predicate = NSPredicate(format:"%@ >= timestamp AND %@ <= timestamp", dateFrom, dateTo! as NSDate)
request.returnsObjectsAsFaults = false
do {
let result = try context.fetch(request)
let durationTodayArray = result.map{$0.duration}
print("Today's Durations: \(durationTodayArray)")
Где 'durationTodayArray' - это массив всех времен, зарегистрированных сегодня.
Извиняюсь, если на этот вопрос ответили в другом месте - я искал и не могу найти решение.
Заранее спасибо.