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))])