ぜのぜ

しりとりしようぜのぜのぜのぜ

283日目

日記

今日書いたコード

今日もガチャガチャやっていた

センサーの保存ガチャガチャ二日目 · Gurrium/Komusou@97e2651 · GitHub

感想

別のオブジェクトの@PublishedなプロパティをトリガーにViewの更新を走らせるには別のオブジェクト全体もしくはそれ用のオブジェクトをObservableObjectに準拠させるしかない?それがいわゆるStateになるのかな。

これで言うと、別のオブジェクトがBluetoothMangerで、@PublishedなプロパティがspeedSensor

final class SensorSettingViewState: ObservableObject {
    @Published
    private(set) var speedSensorName = ""

    private var cancellables = Set<AnyCancellable>()

    init() {
        BluetoothManager.shared.$speedSensor.sink { [weak self] peripheral in
            self?.speedSensorName = peripheral?.name ?? ""
        }
        .store(in: &cancellables)
    }
}