Sobes.tech
Middle+

Jak udělat třídu pozorovatelnou od iOS 17?

sobes.tech AI

Odpověď od AI

Od iOS 17 je možné, aby třída byla pozorovatelná, použít nový protokol Observable z Swift Concurrency. Místo obvyklého ObservableObject s @Published musí třída nyní splňovat protokol Observable a používat asynchronní tok změn.

Příklad:

import SwiftUI
import Observation

@Observable
class MyModel {
    var value: Int = 0
}

// Použití ve SwiftUI
struct ContentView: View {
    @StateObject private var model = MyModel()

    var body: some View {
        Text("Hodnota: \(model.value)")
    }
}

Klíčovým prvkem je zde anotace @Observable před třídou, která automaticky generuje potřebnou logiku pro sledování změn. To usnadňuje tvorbu pozorovatelných modelů a jejich integraci se SwiftUI.