inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Phần 2: Bản sao Instagram iOS dành cho người mới bắt đầu-trung cấp (SwiftUI, MVVM, Firebase, 2024)

45. Tải ảnh đại diện lên máy chủ (AsyncImage VS Kingfisher)

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

Đã giải quyết

152

icopy

21 câu hỏi đã được viết

1

ProfileEditingView 에서

PhotosPicker 안에서

KFImage 사용하니 에러가 발생 합니다.

 

Kingfisher v8.1.3 

 

스크린샷 2024-12-30 오전 11.35.11.png


PhotosPicker 밖에서 사용시 에는 문제 없습니다.

스크린샷 2024-12-30 오전 11.46.49.png

 

ios firebase swiftui mvvm

Câu trả lời 2

0

nightdaycoding

안녕하세요 랑프님

이 부분은 아마 KingFisher문제인거 같습니다.

최근에 swift6관련해서 쓰레드 문제가 많이 일어나고 있는데요.

킹피셔가 대응해서 추후에 업데이트 된다면 괜찮아 질거 같습니다~

0

communityai8509

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

SwiftUI에서 PhotosPicker와 함께 KFImage를 사용하는 도중 발생하는 문제는 일반적으로 Swift의 동시성 모델과 관련 있습니다. 특히 Swift 6에서는 @MainActor 속성이 강조되었고, 비동기 환경에서 발생할 수 있는 문제의 가능성이 높아졌습니다. 아래는 해결 방안입니다:

  1. MainActor 사용 확인: KFImage와 같은 UI 업데이트를 수행하는 작업은 메인 스레드에서 이루어져야 합니다. SwiftUI에서는 일반적으로 이 작업이 자동으로 처리되지만, 때때로 명시적으로 지시할 필요가 있습니다.
   @MainActor
   func loadImage() {
       // KFImage 사용 코드
   }
  1. 비동기 처리 확인: PhotosPicker 안에서 이미지가 비동기적으로 로딩될 수 있으므로, KFImage 사용 시점이 이미 지연된 시점에 맞춰줘야 합니다.

  2. 최신 버전 확인: KFImage나 Kingfisher 라이브러리의 최신 버전을 사용하고 있는지 확인해 주세요. 가끔 라이브러리의 업데이트가 이러한 동시성 관련 문제를 해결해 주기도 합니다.

  3. 스레드 분리: 애플리케이션의 UI 업데이트와 네트워크 작업을 명확하게 분리해 작업이 메인 스레드에서 안전하게 실행되도록 보장합니다.

관련 질문과 답변을 아래 링크에서 확인하실 수 있습니다:

위의 해결 방법을 적용하여 문제를 해결하실 수 있을 것입니다.

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

searchable이 화면 하단에 위치해요

0

62

2

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

0

79

2

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

1

72

2

Thread number가 다 1로 나옵니다

1

69

2

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

1

70

2

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

1

135

3

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

1

137

1

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

0

161

1

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

0

107

2

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

0

108

2

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

0

108

2

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

0

136

2

ViewModel과 Model 구분 (30강)

1

133

2

바인딩하는 이유

1

94

2

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

0

109

1

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

1

245

2

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

1

136

2

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

0

168

3

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

1

134

2

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

1

301

3

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

1

218

3

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

1

167

2

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

0

107

2

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

1

297

2