gpt4 book ai didi

ios - '不能对不可变值 : 'self' is immutable' when iterating? 使用可变的 getter

转载 作者:行者123 更新时间:2023-12-01 19:34:08 30 4
gpt4 key购买 nike

有谁知道为什么self.indexCountForEach给出错误 Cannot use mutating getter on immutable value: 'self' is immutable错误?我可以提供aViewindexCount ,但不是很方便。我没有改变 indexCount。这是 SwiftUI 错误还是故意的?

struct aView: View {
let array: [[String]]
lazy var indexCount: Int = array[0].count

var body: some View {
VStack {
ForEach(0..<self.indexCount, id: \.self) { index in
Text("Hello World")
}
}
}
}

最佳答案

这是故意的。在 SwiftUI 中,只有 @State变量可以改变。您不能使用 lazy var像那样。用计算属性替换它:

var indexCount : Int { array[0].count }

无论如何那更好,因为它永远是正确的: indexCount将始终是 array[0] 的当前大小),而您的方式,该值将卡住在 count是第一次获取。

关于ios - '不能对不可变值 : 'self' is immutable' when iterating? 使用可变的 getter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60767041/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com