Swift 4查询具有相同属性的多个Core Data实体

时间:2019-04-25 10:17:31

标签: core-data swift4 nspredicate nsfetchrequest

我有一个具有多个核心数据实体(例如“跑步,步行,骑行,椭圆”)的应用程序,这些实体均具有称为“持续时间”的一致属性。

我可以从某个日期范围内的每个实体中获取结果,等等,但是我想做的是让一个查询同时检查所有这些实体并生成一个从今天开始的所有持续时间的数组

我知道我可以对每个实体使用单独的查询来执行此操作,但是我肯定必须在一个调用中执行此操作?这样看来真的是劳动密集型的,也许是内存不足的吗?

我尝试了一些建议,但没有达到我追求的结果!

基本上,我需要类似的东西:

    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”是今天记录的任何时间的数组。

很抱歉,如果其他地方都回答了这个问题,我已经找到了&找不到解决方法。

谢谢。

0 个答案:

没有答案