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 {
	// 에러 발생한 코드
}

댓글남기기