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

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


@ObservedObject 简介

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


SwiftUI 基础之@ObservedObject 有什么用(含demo代码2020)_第1张图片
ObservedObject

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

@State 和 @ObservedObject 有什么区别

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

代码

import SwiftUI
import Combine

class BookingStore: ObservableObject {
    var objectWillChange = PassthroughSubject()
    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教程和代码关注专栏

  • 请关注我的专栏 SwiftUI教程与源码

你可能感兴趣的:(SwiftUI 基础之@ObservedObject 有什么用(含demo代码2020))