如何从存储在 Core Data SwiftUI 中的数据计算平均值
Posted
技术标签:
【中文标题】如何从存储在 Core Data SwiftUI 中的数据计算平均值【英文标题】:How can I calculate average from data stored in Core Data SwiftUI 【发布时间】:2021-07-01 14:41:31 【问题描述】:我正在开发一个应用程序,它可以在 SwiftUI 中跟踪我在学校的所有成绩。 我正在使用一个 TextField,我可以在其中通过我的成绩。 (在德国,我们使用从 1 到 15 的数字,其中 1 是最差的,15 是最好的)。我将这些数据存储在 Core Data 中。
我有一个实体:成绩, 和一个属性:点(字符串)
@FetchRequest(entity: Grades.entity(), sortDescriptors: []) var grades : FetchedResults<Grades>
List
ForEach(noten) note in
CellInfo(noteInfo: note)
我有一个带有 ForEach 视图的列表来可视化它。看起来是这样的:
我的问题是:如何计算所有成绩的平均值并显示在底部?
【问题讨论】:
如果 Grade 是一个数字,则将其存储为一个数字 (Int)。 但是如何将 textField 的值存储为 Int 以及如何获取 Int 值以从中获取平均值? 你今天如何存储价值?基本上你需要做的就是使用let value = Int(someText) ?? 0
【参考方案1】:
您可以创建一个计算属性来计算平均值
var average: Double
Double(grades.map(\.points).reduce(0, +)) / Double(grades.count)
如果 points 是 String 则需要转换
var average: Double
grades.map Double($0.points) ?? 0 .reduce(0, +)) / Double(grades.count)
然后将其显示在您的列表下方
Text("\(average)")
【讨论】:
谢谢。这对我帮助很大!以上是关于如何从存储在 Core Data SwiftUI 中的数据计算平均值的主要内容,如果未能解决你的问题,请参考以下文章
如何让 SwiftUI 与 Core Data 一起工作(在启动项目后)?
从 Core Data 非标量属性更新 SwiftUI 视图
SwiftUI从Core Data实体中获取总项目(SQL术语中的行)计数[重复]
Swift之深入解析如何结合Core Data和SwiftUI