Sobes.tech
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 az async-szal együtt.
  • Ha egy @MainActor-rel jelölt függvényt más szálról hív meg, használja az await-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.