Sobes.tech
Junior — Middle

Jakie instrukcje należy wykonywać podczas korzystania z MainActor?

sobes.tech AI

Odpowiedź od AI

@MainActor w Swiftie jest używany do oznaczania, że kod powinien być wykonywany na głównym wątku, co jest ważne dla aktualizacji interfejsu użytkownika i innych operacji wymagających głównego wątku. Główne wskazówki przy używaniu MainActor:

  • Oznaczaj klasy, struktury, funkcje lub właściwości za pomocą @MainActor, aby zapewnić wykonanie na głównym wątku.
  • Dla funkcji asynchronicznych można używać @MainActor razem z async.
  • Jeśli wywołujesz funkcję oznaczoną @MainActor z innego wątku, użyj await, aby przełączyć się na główny wątek.

Przykład:

@MainActor
class ViewModel {
    var title: String = ""

    func updateTitle() {
        title = "Zaktualizowano"
    }
}

func someBackgroundTask() async {
    let vm = ViewModel()
    await vm.updateTitle() // przełączenie na główny wątek
}

W ten sposób @MainActor pomaga unikać błędów związanych z aktualizacją UI spoza głównego wątku.