【问题标题】:Calculating CoreData query between rows计算行之间的 CoreData 查询
【发布时间】:2020-01-23 10:43:14
【问题描述】:

我有一个 CoreData 实体 - 日期和距离的“列”。

例如

Date         Dist
---          ---
01/01/2020   20
07/01/2020   70
10/01/2020   60

理想情况下,我希望提取所有行(按日期排序) - 每行计算这一行与下一行之间的天数,然后使用下一行的距离值来计算已覆盖的距离,除以天数。

例如

Date         Dist Days     Dist   Miles per day
---          ---  ---      ---    ---
01/01/2020   20   7 days   70     10 miles per day
07/01/2020   70   3 days   60     20 miles per day
10/01/2020   60   NA       NA     NA

我不知道是否应该在查询或代码中执行此操作 - 我正在使用 SwiftUI。

我当前的代码只是通过提取请求提取所有行,我不知道从这里去哪里。

任何帮助或建议,或者如果你能指出我正确的方向,将不胜感激。

【问题讨论】:

  • 显然应该通过代码来完成。首先,您必须为您的columns 类创建一个扩展。在那里,您可以创建计算所需的属性/函数并在 UI 中显示结果。但是对于 Days 属性,最好将此类字段添加到您的 columns 实体并立即对其进行计数,因为为了获得 A 和 B 的差异,您必须对 CoreData 执行额外的调用,这可能会减少加载时间.

标签: core-data swiftui


【解决方案1】:

一定要通过代码做到这一点。将更多数据放入您的实体中可能会更干净,而不是每次都尝试重新计算所有这些。所以每个实体都知道自己的开始和结束日期以及开始和结束的距离。

当您添加一个新实体时,只需使用其最终值更新前一个实体。

您也可以有一个例程来遍历所有内容并重新计算并保存。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-27
    • 2018-10-03
    • 2013-10-14
    • 1970-01-01
    • 2022-11-17
    相关资源
    最近更新 更多