강의

멘토링

로드맵

Inflearn コミュニティ Q&A

icopy のプロフィール画像
icopy

投稿した質問数

Part2:超中級iOSインスタグラムクローン(SwiftUI、MVVM、Firebase、2024)

45. プロフィール写真のサーバーへのアップロード (AsyncImage VS Kingfisher)

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

解決済みの質問

作成

·

112

·

編集済み

1

ProfileEditingView 에서

PhotosPicker 안에서

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

 

Kingfisher v8.1.3 

 

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


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

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

 

iosfirebaseswiftuimvvm

回答 2

0

agmma님의 프로필 이미지
agmma
インストラクター

안녕하세요 랑프님

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

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

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

0

안녕하세요, 인프런 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 업데이트와 네트워크 작업을 명확하게 분리해 작업이 메인 스레드에서 안전하게 실행되도록 보장합니다.

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

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

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

icopy のプロフィール画像
icopy

投稿した質問数

質問する