백그라운드에서 UI 관련 작업을 수행할 때 나오는 오류
Publishing changes from background threads is not allowed; make sure to publish values from the main thread (via operators like receive(on:)) on model updates.
라는 에러를 맞닥뜨렸다.
왜?
UI 관련 작업을 main thread에서 하지 않으면 발생하는 오류라고 하는데,
내 경우엔 @Published로 선언된 변수를 completion Handler 블럭 안에서 그냥 수정해서 에러가 발생했다.
변화를 감지해 UI를 변화시키는 @Published 변수의 역할상, UI 관련 작업으로 분류해 해당 오류가 생기는 것이 아닐까 한다.
어떻게 해결?
메인 쓰레드로 해당 코드를 감싸주면 된다.
DispatchQueue.main.async {
// 에러 발생한 코드
}
댓글남기기