绑定的property / $ property语法是什么?

时间:2019-06-04 15:56:20

标签: swift swiftui

handling user input tutorial中所示。

struct LandmarkList: View {
    @State var showFavoritesOnly = true

    var body: some View {
        NavigationView {
            List {
                Toggle(isOn: $showFavoritesOnly) {
                    Text("Favorites only")
                }
   ...

什么是showFavoritesOnly / $ showFavoritesOnly语法?

这是Binding<T>独有的东西,还是我们可以在自己的代码中使用它?

1 个答案:

答案 0 :(得分:2)

@State旨在用作SwiftUI属性的绑定。在您的body的{​​{1}}访问者之外对其进行的任何访问都将崩溃:

View

SwiftUI会自动跟踪所有Thread 1: Fatal error: Accessing State<Bool> outside View.body 声明,并在其中任何一个更改时重新计算适当的@State

body是使用Swift 5.1 @State功能实现的,该功能可以自定义属性的存储行为。