Sobes.tech
Back to questions
Junior — Middle
80

Какие указания нужно делать при использовании MainActor?

Answer from AI

sobes.tech AI

@MainActor в Swift используется для обозначения, что код должен выполняться на главном потоке, что важно для обновления UI и других операций, требующих главного потока. Основные указания при использовании MainActor:

  • Аннотируйте классы, структуры, функции или свойства с помощью @MainActor, чтобы гарантировать выполнение на главном потоке.
  • Для асинхронных функций можно использовать @MainActor вместе с async.
  • Если вызываете функцию, помеченную @MainActor, из другого потока, используйте await для переключения на главный поток.

Пример:

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

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

func someBackgroundTask() async {
    let vm = ViewModel()
    await vm.updateTitle() // переключение на главный поток
}

Таким образом, @MainActor помогает избежать ошибок, связанных с обновлением UI не из главного потока.