У меня есть запрос на выборку: @FetchRequest(entity: Solve.entity(), sortDescriptors: []) var solves: FetchedResults<Solve>
Один из моих атрибутов моей сущности (Solve) - это время (Double), и я пытаюсь найти 5 раз подряд, что при усредненном результате в лучшем среднем. Я написал эту функцию в представлении SwiftUI:
func getSolvesArray()-> [Solve]{
//Empty Base to initially fill the array with
let solve1 = Solve()
solve1.scramble = "R2 D' U' F2 D R2 D F2 D' L2 R' B L F L' D R U' L R'"
solve1.time = "00:00:00"
solve1.numTime = 9999.99
solve1.date = Date()
//Compares the current 5 solves to the best and if the current is a better average then the best, the current becomes the best
var bestAO5 = [solve1, solve1, solve1, solve1, solve1]
var currentAO5 = [solve1, solve1, solve1, solve1, solve1]
for solve in solves{
currentAO5[0] = currentAO5[1]
currentAO5[1] = currentAO5[2]
currentAO5[2] = currentAO5[3]
currentAO5[3] = currentAO5[4]
currentAO5[4] = solve
if(((currentAO5[0].numTime+currentAO5[1].numTime+currentAO5[2].numTime+currentAO5[3].numTime+currentAO5[4].numTime)/5) < ((bestAO5[0].numTime+bestAO5[1].numTime+bestAO5[2].numTime+bestAO5[3].numTime+bestAO5[4].numTime)/5)){
bestAO5 = currentAO5
}
}
return bestAO5 }
Эта функция должна возвращать массив из пяти решений в строке, которые приводят к наименьшему среднему значению, затем я запускаю это для каждого l oop: ForEach(getSolvesArray(), id: \.id){ solve in
Text("\(solve.time ?? "Unknown")")
}
Внутри списка {} для постоянного отображения, однако при запуске программы происходит сбой с этой ошибкой: Поток 1: Исключение: "- [Решить setScramble:]: нераспознанный селектор отправлен на instance 0x600003bb7a40 "
Кто-нибудь знает, как я могу go анализировать свои основные объекты данных таким способом? Я считаю, что моя проблема может заключаться в том, как я повторяю fetchRequest, поэтому, если кто-то знает, как преобразовать запрос на выборку в обычный массив Entity, это тоже было бы здорово. Спасибо!