@ObservedObjectとは?
データをまとめた自作クラスの更新通知を受け取るためのプロパティラッパーです。
SwiftUIでは、CoreDataやAPIなどで様々なデータのやり取りをします。
こうした外部のデータを自作クラスにまとめ、ビューを構築する際に使います。
使い方
ObservedObjectは、次の手順で使います。
- 自作クラスをObservableObjectプロトコルに準拠させる
- ビューに更新通知を送るプロパティに@Published属性を付与する
- ビューのプロパティで@ObservedObjectを自作クラスのインスタンスに付与する
まず、自作クラスをObservableプロトコルに準拠させます。
class Sample : ObservableObject {
}
次に、ビューに更新通知を送るプロパティに@Published属性を付与します。
class Sample : ObservableObject {
@Publishe data = "サンプルデータ"
}
付与できる個数の制限はありません。
最後に、データを扱うビュー側で@ObservedObjectプロパティラッパーを使ったインスタンスを生成します。
struct ContentView: View {
@ObservedObject var sample = Sample()
var body: some View {
//View
}
}
まとめ
@ObservedObjectは、自作クラスの更新通知を受け取るためのプロパティラッパーです。
以下の手順で使用します。
- 自作クラスをObservableObjectプロトコルに準拠させる
- ビューに更新通知を送るプロパティに@Published属性を付与する
- ビューのプロパティで@ObservedObjectを自作クラスのインスタンスに付与する
コメント