inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Part2: 초중급 iOS 인스타그램 클론(SwiftUI, MVVM, Firebase, 2024)

62. Follow, Unfollow 기능 구현

62강 Follow, Unfollow기능구현에서,,

해결된 질문

107

ksw

작성한 질문수 16

0

7:15까지 코드 따라하고, 구동하는데;;

아래와 같이 에러가 뜹니다...

 

Thread 3: Simultaneous accesses to 0x600003d332b0, but modification requires exclusive access

 

구동조차 안되고 바로

image.png

아래와 같이 떠버려요;;

 

이건 어떻게 해결할가요???

ios firebase swiftui mvvm

답변 2

0

밤낮 코딩

안녕하세요

xcode16에서 동시성 관련 문제가 엄격해져서 나타나는 문제인데요

checkFoolow 함수를 다음과 같이 바꾸시면 됩니다.

func checkFollow() {
    Task {
        let id = user?.id
        self.user?.isFollowing =  await AuthManager.shared.checkFollow(userId: id)
    }
}

 

관련해서 영상 추가해두겠습니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. ksw님.

현재 코드에서 발생한 “Simultaneous accesses to 0x600003d332b0, but modification requires exclusive access” 오류는 메모리 접근과 관련된 문제로, 동시에 여러 장소에서 같은 메모리 위치에 접근하려고 할 때 발생합니다. 주로 Swift에서 데이터 보호를 위해 설계된 메커니즘과 관련이 있습니다.

오류 설명

  1. 동시 접근 문제: 이 오류는 같은 데이터에 대해 동시에 여러 접근을 시도할 때 발생하며, 특히 읽기와 쓰기 작업이 충돌할 때 나타납니다.

  2. Swift의 안전성 메커니즘: Swift는 메모리 안전성을 강화하기 위해 이와 같은 동시 접근이 발생하면 경고 또는 오류를 발생시킵니다.

해결 방법

  • 데이터 요청 정리: 문제가 발생하는 코드에서는 하나의 스레드에서만 데이터를 읽고 쓰도록 구조를 변경해야 합니다.

  • @MainActor 사용: 데이터의 상태 관리에서 메인 스레드에서 동작하도록 보장해야 하는 요소가 있을 경우, @MainActor 를 적용해 확인해봅니다. 예:

  @MainActor
  class SomeViewModel: ObservableObject {
      @Published var someData: SomeType
      // ...
  }
  • 연산 순서 조정: 특정한 순간에만 데이터에 접근하도록 연산 순서를 조정하거나, 상호 배제(Mutex) 등을 통해 교착 상태를 피할 수 있습니다.

다음 두 개의 질문 답변도 참고하시기 바랍니다. 비슷한 오류의 해결 방법을 제공하고 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

searchable이 화면 하단에 위치해요

0

60

2

warning 하나가 있는 것 같습니다. 해결방법좀 알려주세요

0

79

2

설계 관련하여 참고할 문서나 예제 공유가 가능할까요?

1

71

2

Thread number가 다 1로 나옵니다

1

69

2

'loadAllPosts' 를 매번 사용해야 하나요?

1

69

2

75강 실시간으로 팔로우수 안늘어나는 이유?

1

135

3

예전코드도 배워야 할까요?

1

137

1

ProfileView에서 toolbar이용시 문제점 발생, 로직이 이해가 되지 않습니다.

0

161

1

애구마선생님, 다음 프로젝트 강의는 언제 올려주세요???

0

108

2

51강 10:22에서 이미지 여러장이 나오지 않아요;;

0

108

2

52강 post데이터가 불러와지지 않아요,,,

0

135

2

ViewModel과 Model 구분 (30강)

1

133

2

바인딩하는 이유

1

94

2

75강 까지 마무리후 소스 오류 사항 문의

0

109

1

SwiftUI main actor 관한 경고 계속 뜹니다.

1

245

2

45강의 에서 Kingfisher 사용후 발생하는 swift6 이슈

1

152

2

19강에서 Encoder()를 사용할 수 없습니다.

1

135

2

40. 강에서 정상작동 안합니다.

0

168

3

프로필 수정 후 변경된 내용을 피드에 바로 반영되도록 하고 싶습니다.

1

134

2

15강에서 발생한 문제에 대해서 질문이 있습니다!

1

301

3

13강 코드 작성 후 피드의 유저 데이터가 보이지 않는 문제

1

217

3

혹시 다음 강의 대략 언제쯤 완료되시는지 알 수 있을까요??

1

166

2

섹션7 뷰 리팩토링 질문있습니다.

0

106

2

firebase에서 데이터를 불러오는데 오류가 발생합니다.

1

296

2