2

是否可以在结构的 init 函数中访问 enviromentObject 变量?

@EnvironmentObject var socketHandler: SocketHandler


init() {

    print(self.socketHandler.testVar)

}

我试过这样但没有让它工作。我收到了这个错误:

Fatal error: No ObservableObject of type SocketHandler found

我已将环境对象添加到 SceneDelegate 并且可以在我的 UI 中访问该变量。

4

1 回答 1

1

如果您以通常的方式调用它,例如

let contentView = ContentView().environmentObject(SomeObject())

那么肯定答案是否定的,因为这是实际完成的:

let temp = ContentView() // < called constructor
let contentView = temp.environmentObject(SomeObject()) // call function on variable that 
                                               // just return another different value
于 2020-02-25T17:04:16.200 回答