반응형
실시간으로 변하는 현재 프레임을 받아와서 화면에 표시해주려고 했는데,
init()이나 viewDidLoad()는 따로 업데이트가 되지 않으니
extension으로 만들어준 SCNSceneRendererDelegate에서 UILabel()을 업데이트 하고자 하여 텍스트를 바로 설정해주었더니,
UILabel.text must be used from main thread only
라는 에러 메세지가 떴다.
UI 인스턴스들을 업데이트 하고싶을 경우!
DispatchQueue.main.async { 실행할 코드 }
업데이트를 실행하는 메서드 안에 DispatchQueue.main.async {} 를 넣고 그 안에 원하는 UI 업데이트 코드를 작성해주면 화면에 잘 업데이트된다!
+ 이거 말고도
OperationQueue.main.addOperation { }
을 사용해도 된다고 한다.
이 둘의 차이를 간단하게 말하자면 작업이 복잡하지 않고 간단한 경우 DispatchQueue를, 좀 더 복잡한 작업이 필요한 경우 OperationQueue를 사용한다고 한다.
728x90
반응형