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

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


@ObservedObject 简介

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


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教程和代码关注专栏

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容