[iOS] Kingfisher에서 이미지 요청할 때 한글이 있을 경우 처리하기

Kingfisher를 사용할 때 요청 url에 한국어가 들어가 있을 때 어떻게 처리하는지 알아보자


환경

  • Swift
  • Cocoa Pods
  • Xcode and Emulator


Kingfisher

Kingfisher란 홈페이지에 있는 문구를 인용하면 “A lightweight, pure-Swift library for downloading and caching images from the web.”라고 나와있다.

아주 간단하게 웹에 있는 url을 통해서 이미지를 불러오는 라이브러리라고 할 수 있습니다.

아주 간단한 예는 아래와 같습니다.

example.swift


let url = URL(string: "url_of_your_image")
imageView.kf.setImage(with: url)


Kingfisher에서 요청 할 때 url에 한국어가 포함되어 있을 때

프로젝트를 진행하는데 url에 한국어가 있을 때 이미지를 로딩하지 못하는 상항이 발생하였는데 다음 아래와 같이 간단한 코드를 통해서 해결이 가능하다. addingPercentEncoding을 이용하면 된다.

example.swift


// 원하는 urlString을 addingPercentEncoding을 통해 바꿔줍니다.
let urlString = urlString?.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed)

// 그 후 원하는 ImageView에 적용시키시면 됩니다.
imageView.kf.setImage(with: URL(string: urlString), placeholder: defaultImg, options: [.transition(ImageTransition.fade(0.5))])