我創建了一個具有以下屬性的核心資料物體:

而且我已經設法手動輸入了 5 個“Round”實體,這樣我就有了 5 個“行”資料,并確認 Core Data 正在作業。
問題是現在如何將矩陣中的“列”(對于 Int64 值)相加,然后除以“行”數,即計算每列的平均值?
我是新手,所以任何幫助表示贊賞。
另外,如果我創建一個函式來執行這些計算,我可以只在核心資料 FetchRequest 之后立即呼叫它嗎?
謝謝。
uj5u.com熱心網友回復:
是的,您可以在代碼中創建函式并在獲取的核心資料上呼叫它們。此外,您不需要total核心資料中的屬性,因為您可以即時計算它。
我假設您的 FetchRequest 生成一個Round被呼叫的陣列coredata
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, { $0 $1.pos1 })
case 2: return coredata.reduce(0, { $0 $1.pos2 })
case 3: return coredata.reduce(0, { $0 $1.pos3 })
case 4: return coredata.reduce(0, { $0 $1.pos4 })
case 5: return coredata.reduce(0, { $0 $1.pos5 })
default: return 0
}
}
func columnAverage(pos: Int) -> Double {
return Double(columnSum(pos: pos)) / Double(coredata.count)
}
然后你可以在你的視圖中做這樣的事情:
Text("Average row 1: \(columnAverage(pos: 1))")
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/442052.html
