相关疑难解决方法(0)

在 SwiftUI 中使用参数初始化 @StateObject

我想知道目前是否有(在询问时,第一个 Xcode 12.0 Beta)使用@StateObject来自初始化程序的参数来初始化 a 的方法。

更具体地说,这段代码可以正常工作:

struct MyView: View {
  @StateObject var myObject = MyObject(id: 1)
}
Run Code Online (Sandbox Code Playgroud)

但这不会:

struct MyView: View {
  @StateObject var myObject: MyObject

  init(id: Int) {
    self.myObject = MyObject(id: id)
  }
}
Run Code Online (Sandbox Code Playgroud)

从我理解的作用@StateObject是使视图成为对象的所有者。我使用的当前解决方法是传递已经初始化的 MyObject 实例,如下所示:

struct MyView: View {
  @ObservedObject var myObject: MyObject

  init(myObject: MyObject) {
    self.myObject = myObject
  }
}
Run Code Online (Sandbox Code Playgroud)

但是现在,据我所知,创建对象的视图拥有它,而这个视图没有。

谢谢。

swift swiftui xcode12

44
推荐指数
4
解决办法
9233
查看次数

标签 统计

swift ×1

swiftui ×1

xcode12 ×1