SwiftUI - 处理矩阵中的行和列

SwiftUI - Working with rows & columns in a matrix

我创建了一个具有以下属性的核心数据实体:

而且我已经成功地手动输入了 5 个“Round”实例,这样我就有了 5“行”数据,并确认 Core Data 正在运行。

问题是现在如何将矩阵中的“列”相加(对于 Int64 值),然后除以“行”数,即计算每列的平均值?

我是新手,非常感谢您的帮助。

此外,如果我创建一个 func 来执行这些计算,我是否可以仅在 Core Data FetchRequest 之后立即调用它?

谢谢。

是的,您可以在代码中创建函数并在获取的核心数据上调用它们。此外,您不需要核心数据中的 total 属性,因为您可以即时计算它。

我假设您的 FetchRequest 生成一个名为 coredata

Round 数组
func total(round: Round) -> Int64 {
    return round.pos1 + round.pos2 + round.pos3 + round.pos4 + round.pos5
}

func columnSum(pos: Int) -> Int64 {
    switch pos {
    case 1: return coredata.reduce(0, { [=10=] + .pos1 })
    case 2: return coredata.reduce(0, { [=10=] + .pos2 })
    case 3: return coredata.reduce(0, { [=10=] + .pos3 })
    case 4: return coredata.reduce(0, { [=10=] + .pos4 })
    case 5: return coredata.reduce(0, { [=10=] + .pos5 })
    default: return 0
    }
}

func columnAverage(pos: Int) -> Double {
    return Double(columnSum(pos: pos)) / Double(coredata.count)
}

然后你可以在你的视图中做这样的事情:

Text("Average row 1: \(columnAverage(pos: 1))")