Как правильно использовать @mainactor в SwiftuiIOS

Программируем под IOS
Ответить
Anonymous
 Как правильно использовать @mainactor в Swiftui

Сообщение Anonymous »

Я не могу использовать @mainactor для методов вызова API.
Итак, в основном, когда я вызову API метод ViewModel из .onapear {} или .task {}
Затем я использую @mainactor сверх метода. < /p>

@MainActor
func getPendingTaskList() async {
// UI update here...
viewState = .shimmering
do {
// API calling here...
let response = try await useCase.getPendingList(
responseType: [PendingTaskResponse].self
)
// UI update here...
setupDisplayModel(response)
viewState = .loaded
} catch(let error) {
// UI update here...
debugPrint(error.localizedDescription)
viewState = .loaded
}
}
< /code>
Внутри Swiftui я делаю это: < /p>
var body: some View {
VStack {
content
}
.task {
await listViewModel. getPendingTaskList()
}
}

< /code>
Итак, это правильно или нет?
или я должен использовать < /p>
await MainActor.run {
// Update UI code here....
}


Подробнее здесь: https://stackoverflow.com/questions/797 ... in-swiftui
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»