SwiftUI 基础之@ObservedObject 有什么用(含demo代码2020)

SwiftUI 基础之@ObservedObject 有什么用(含demo代码2020)


@ObservedObject 简介

很遗憾,也许这个属性装饰器实在太新了,apple官方还没有给具体定义


41085-937adf6ae56a4f8e.png
ObservedObject

大白话:观测对象修饰器,被ObservedObject修饰的变量只要有变化就会自动更新

@State 和 @ObservedObject 有什么区别

@State用于View内部,@ObservedObject用于外部。例如数据存储在数据库中,我们就需要用@ObservedObject了。

代码

import SwiftUI
import Combine

class BookingStore: ObservableObject {
    var objectWillChange = PassthroughSubject<Void, Never>()
    var bookingName: String = "" { didSet { updateUI() }
    }
    var seats: Int = 1 { didSet { updateUI() }
    }
    func updateUI() { objectWillChange.send()
    }
    
}


struct ContentView: View {
    @ObservedObject var model = BookingStore()
    var body: some View {
        VStack {
            TextField("Your Name",text: $model.bookingName)
            Stepper("Seats : \(model.seats)",
                        value: $model.seats,
                        in:1...5)
        }
        
    }
    
    
}

更多SwiftUI教程和代码关注专栏

发布了637 篇原创文章 · 获赞 4 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/iCloudEnd/article/details/104037785