在SwiftUI中初始化之前使用的变量“varname”
Xcode Playground 中的以下代码在主题中产生错误:
import SwiftUI
struct Test2 {
var i: Int64
var j: UUID
}
struct Test {
@State private var t: Test2
init(_ test: Test2) {
t = test // Variable 'self.t' used before being initialized
}
}
显然,我没有使用t,而是为其分配了一个值。
如果我var j: UUID从 中删除Test2 struct,错误就会消失。
在我的实际代码中,Test 结构是一个视图,但这不是生成错误所必需的。
回答
这应该有效:
init(_ test: Test2) {
_t = State(initialValue: test) // Variable 'self.t' used before being initialized
}
@State 是一个属性包装器,因此您需要为基础属性赋值,因此_。