教程中使用 environment 来注入了一个 class 的实例 @StateObject var a = SomeClass(), 在某页面中(SwiftUI) 将这个 a 传递给一个子页面, 需要在子页面中使用 @Binding, 传递时候需要使用 $a 来传递它的 projectedValue.
我的疑惑: class 不是 reference 类型吗? 为什么还要这样传递? 比如:
class Foo { var a: String init(a: String) { self.a = a } } var foo = Foo(a: "aaa") print(foo.a) var bar = foo bar.a = "bbb" print(foo.a) // bbb func baz(f: Foo) { f.a = "xxx" } baz(f: bar) print(foo.a) // xxx 可能是因为 @StateObject 作用让它发生了变化? 为什么不直接使用 class 这种引用类型?

