Middle+
¿Cómo hacer que una clase sea observable a partir de iOS 17?
sobes.tech AI
Respuesta de la IA
A partir de iOS 17, para hacer que una clase sea observable, se puede usar el nuevo protocolo Observable de Swift Concurrency. En lugar del habitual ObservableObject con @Published, ahora la clase debe cumplir con el protocolo Observable y usar un flujo asíncrono de cambios.
Ejemplo:
import SwiftUI
import Observation
@Observable
class MyModel {
var value: Int = 0
}
// Uso en SwiftUI
struct ContentView: View {
@StateObject private var model = MyModel()
var body: some View {
Text("Valor: \(model.value)")
}
}
Aquí, lo clave es la anotación @Observable antes de la clase, que genera automáticamente la lógica necesaria para rastrear cambios. Esto simplifica la creación de modelos observables y su integración con SwiftUI.