Junior — Middle
Milyen utasításokat kell megadni a MainActor használata során?
sobes.tech MI
Válasz az MI-től
A @MainActor Swiftben arra szolgál, hogy jelezze, a kódnak a fő szálon kell futnia, ami fontos a UI frissítéséhez és más, a fő szálat igénylő műveletekhez. A MainActor használatakor főbb irányelvek:
- Jelölje meg osztályokat, struktúrákat, függvényeket vagy tulajdonságokat
@MainActor-rel, hogy garantálja a fő szálon való végrehajtást. - Aszinkron függvényekhez használhatja az
@MainActor-t azasync-szal együtt. - Ha egy
@MainActor-rel jelölt függvényt más szálról hív meg, használja azawait-et a fő szálra váltáshoz.
Példa:
@MainActor
class ViewModel {
var title: String = ""
func updateTitle() {
title = "Frissítve"
}
}
func someBackgroundTask() async {
let vm = ViewModel()
await vm.updateTitle() // váltás a fő szálra
}
Így a @MainActor segít elkerülni a hibákat, amelyek UI frissítésekor fordulhatnak elő nem fő szálról.