HIT해
[Swift/TCA] warning: data race detected: @MainActor function at ComposableArchitecture/Binding+Observation.swift:164 was not called on the main thread 에러 해결하기 본문
Swift/Swift 개발 노트
[Swift/TCA] warning: data race detected: @MainActor function at ComposableArchitecture/Binding+Observation.swift:164 was not called on the main thread 에러 해결하기
힛해 2024. 9. 24. 06:19728x90
Xcode 업데이트를 한 뒤 해당 오류가 발생해서 앱을 자꾸 멈추게했다.
원인은 바로 @MainActor 가 포함된 코드를 메인 스레드에서 호출하지 않아서 발생하는 문제였다.
나의 경우 TCA run 코드가 백그라운드 스레드에서 실행되어서, 해당 코드를 메인 스레드로 전환해주어야했다.
해결 방법
DispatchQueue.main.async를 사용해 메인 스레드에서 UI 상태를 변경하도록 수정해준다,
let completionAction = SCNAction.run { node in
// UI 업데이트는 메인 스레드에서 실행
DispatchQueue.main.async {
self.parent.enable = true
}
}
이렇게 수정하면 self.parent.enable이 메인 스레드에서 실행되어 경고 메시지 없이 UI 상태를 안전하게 업데이트할 수 있게 된다.
'Swift > Swift 개발 노트' 카테고리의 다른 글
[Swift/SwiftUI] 줄바꿈 단위 글자단위 <-> 어절단위 (0) | 2024.09.26 |
---|---|
[Swift/TCA] binding 변수 처리하기 ( TCA 1.12.1 ) (0) | 2024.09.24 |
[Swift/UIImage] 이미지 잘라내기 cropping (0) | 2024.09.23 |
[Swift/SceneKit] 3D 모델 캡쳐하기 (0) | 2024.09.23 |
[Swift/WatchOS] WatchOS WorkOutKit 개발해보기 (0) | 2024.09.23 |