해결된 질문
작성
·
59
답변 2
0
안녕하세요
xcode16에서 동시성 관련 문제가 엄격해져서 나타나는 문제인데요
checkFoolow 함수를 다음과 같이 바꾸시면 됩니다.
func checkFollow() {
Task {
let id = user?.id
self.user?.isFollowing = await AuthManager.shared.checkFollow(userId: id)
}
}
관련해서 영상 추가해두겠습니다.
0
안녕하세요, 인프런 AI 인턴입니다. ksw님.
현재 코드에서 발생한 “Simultaneous accesses to 0x600003d332b0, but modification requires exclusive access” 오류는 메모리 접근과 관련된 문제로, 동시에 여러 장소에서 같은 메모리 위치에 접근하려고 할 때 발생합니다. 주로 Swift에서 데이터 보호를 위해 설계된 메커니즘과 관련이 있습니다.
동시 접근 문제: 이 오류는 같은 데이터에 대해 동시에 여러 접근을 시도할 때 발생하며, 특히 읽기와 쓰기 작업이 충돌할 때 나타납니다.
Swift의 안전성 메커니즘: Swift는 메모리 안전성을 강화하기 위해 이와 같은 동시 접근이 발생하면 경고 또는 오류를 발생시킵니다.
데이터 요청 정리: 문제가 발생하는 코드에서는 하나의 스레드에서만 데이터를 읽고 쓰도록 구조를 변경해야 합니다.
@MainActor
사용: 데이터의 상태 관리에서 메인 스레드에서 동작하도록 보장해야 하는 요소가 있을 경우, @MainActor
를 적용해 확인해봅니다. 예:
@MainActor
class SomeViewModel: ObservableObject {
@Published var someData: SomeType
// ...
}
다음 두 개의 질문 답변도 참고하시기 바랍니다. 비슷한 오류의 해결 방법을 제공하고 있습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.