【发布时间】:2021-09-13 22:22:41
【问题描述】:
Xcode 游乐场中的以下代码在主题中产生错误:
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,我正在为它分配一个值。
如果我从Test2 struct 中删除var j: UUID,错误就会消失。
在我的实际代码中,Test 结构是一个视图,但这不是生成错误所必需的。
【问题讨论】:
-
初始化器中的 Test2 来自哪里?
-
@matt 来自测试结构的消费者:
let myTest = Test(Test2(i: 0, j: UUID()) -
但是你需要证明这一点。
-
@matt 我看不出它的相关性。调用者无关紧要。如果您将代码输入到 Playground 中,您会收到错误消息。
-
如果没有
test:参数的值,我一开始就不会期望编译。您至少需要展示有机会编译的代码。