尝试在 SwiftUI View 中设置计算属性会出现编译器错误“无法分配给属性:‘self’是不可变的”。
我该如何调用 setter?
struct Test: View{
@State var _s = "test"
@State var _s2 = true
private var s : String
{ get { _s }
set (new)
{ _s = "no test"
_s2 = false
// do something else
}
}
var body: some View
{ Text("\(s)")
.onTapGesture {
self.s = "anyting" // compiler error
}
}
}
最佳答案
啊哈...我明白了。只需使用非变异集
private var s : String
{ get { _s }
nonmutating set (new)
{ _s = "no test"
_s2 = false
// do something else
}
}
关于swift - 在 SwiftUI View 中设置计算属性无法编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60451917/