// Выполнение в фоновом режиме
let newData = ... // Здесь какая-то асинхронная операция для получения данных
// Чтобы безопасно обновить @Published переменную, переключаемся обратно на главный поток
await MainActor.run {
self.publishedProperty = newData
}
}
}
Подскажите, надо ли в таком примере использовать await MainActor. run { } ??? Если я перед функцией или vm устанавливаю @ MainActor?
в гугле пишут не обязательно
нет, но имхо лучше в начале поставить MainActor, чем потом это еще в одно замыкание оборачивать
А как лучше, сразу на всю vm делать или для функций отдельно?
по большому счету все равно, но если у тебя там есть какие-то var свойства, то лучше все в MainActor или хотя бы обернуть их в какой-то враппер чтоб всякие гонки убрать
прикол начнется когда ты в настройках проекта поменяешь проверку на многопоточность
Обсуждают сегодня