SwiftUI 严重依赖属性包装器,以使我们的代码更易于阅读,编写和维护,但是如果您从未使用过它们,您可能会想知道所有 @ 和 $ 符号的来源 - 乍一看它们似乎很陌生。
尽管自从 Swift 5.1 引入属性包装器以来,它是 Swift 的一项常规功能,但它们在 SwiftUI 中尤为常见 -您 会看到 @Published,@ObservedObject,@EnvironmentObject等,所有这些都是为了减少模板的数量 在我们的代码中。
在接下来的几章中,我们将详细介绍每个 SwiftUI 的属性包装器,但只需简要介绍一下这些基础知识即可:
@State 允许我们修改结构体中的属性的方式。@FetchRequest希望您提前将 Core Data 管理的对象上下文放入环境中。@ObservedObject @Binding var value = SomeClass() 是不允许的。@Environment 和 @EnvironmentObject!),它们也有所不同,因此,请务必正确使用它们。这涵盖了基础知识,但是要真正了解这些属性包装程序是如何工作的,有必要对它们进行逐一研究。