Фиолетовое предупреждение Publishing changes from background threads is not allowed
final class OrdersViewModel: ObservableObject {
@Published var orders: [Order] = []
func load() async throws {
orders = try await api.orders()
}
}
Экран вызывает load() из .task { }. В Xcode появляется фиолетовое предупреждение о публикации изменений из фонового потока, иногда список обновляется с задержкой. Как исправить системно?
- Пометить класс ViewModel атрибутом @MainActor
- Сделать orders обычным свойством без @Published
- Вызывать load() через Task.detached
- Объявить orders как nonisolated
