Sobes.tech
Back to questions
Middle+
194

Как сделать класс наблюдаемым начиная с iOS 17?

Answer from AI

sobes.tech AI

Начиная с iOS 17, для того чтобы сделать класс наблюдаемым, можно использовать новый протокол Observable из Swift Concurrency. Вместо привычного ObservableObject с @Published, теперь класс должен соответствовать протоколу Observable и использовать асинхронный поток изменений.

Пример:

import SwiftUI
import Observation

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

// Использование в SwiftUI
struct ContentView: View {
    @StateObject private var model = MyModel()

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

Здесь ключевое — аннотация @Observable перед классом, которая автоматически генерирует необходимую логику для отслеживания изменений. Это упрощает создание наблюдаемых моделей и интеграцию с SwiftUI.