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