Error

[iOS / Error] Main Thread Checker: UI API called on a background thread 에러 해결

Minny27 2022. 1. 18. 14:48

API를 통해 가져온 데이터로 UI를 업데이트할 때

DispatchQueue.global().async 를 사용했더니 위와 같은 에러가 발생했습니다.

찾아보니, UI 업데이트와 관련된 작업main thread에서 실행해야 하는

background thread에서 실행해서 발생한 에러입니다.

 

Xcode에서 제공하는 runtime tools 중 Main Thread Checker가 있는데

이 tool은 기본 스레드에서 실행해야 하는 시스템 API가 실제로 해당 스레드에서 실행되는지 확인합니다.

AppKit 및 UIKit UI API에 적용되며, 일부 다른 시스템 API에도 적용됩니다. 기본 스레드에서 이러한 API를 호출하면 관련 작업의 실행을 직렬화하여 경합 조건을 방지할 수 있습니다. 이는 시각적 결함, 데이터 손상 또는 충돌을 막아줍니다.

 

 

 

※ 참고 출처

애플 공식 문서

 

Apple Developer Documentation

 

developer.apple.com