iOS) MainActor 사용해서 main queue 에서 실행시키기

less than 1 minute read

내용

  • MainActor 를 사용해서 main thread 에서의 동작을 보장해보자.

MainActor 는 Concurrency 의 Actors API collection 중 하나입니다.

Apple Developer Documentation

MainActor

Apple Developer Documentation

A singleton actor whose executor is equivalent to the main dispatch queue.

즉, mian thread 에서의 동작을 보장하는 Actor 입니다.MainActor 를 사용하면 DispatchQueue.main 을 언제 사용할지 고민하지 않아도 됩니다!

Task {
    do {
        movies = try await getMovie()
        await MainActor.run {
            movieCollectionView.reloadData()
        }
    } catch {
        // error handling.
    }
}

DispatchQueue.main 과 동일하게 다음 run loop 를 기다리지 않고 비동기적으로 처리합니다.

출처:

Apple Developer Documentation

Protect mutable state with Swift actors

How to use @MainActor to run code on the main queue

Categories:

Updated: