728x90
문제
Alamofire를 사용해 URL에서 이미지 받아오기
Unsplash와 같은 Open API나 서버에서 사진을 받을 경우 URL을 UIImage로 변경하는 작업을 처리해야한다. 보통 Data(constentsOf:)를 사용하지만 공식문서에서는 URLSession 사용을 권장한다. 오늘은 URLSession을 기반으로 만들어진 Alamofire를 통해 URL에서 이미지를 받아오자.
private func confidureImagefromURL(_ url: String) {
guard let url = URL(string: url) else {return}
let request = AF.request(url, method: .get)
request.responseData{ [weak self] response in
switch response.result {
case .success(let imageData):
DispatchQueue.main.async {
guard let image = UIImage(data: imageData) else {return}
self?.contentImage.image = image
}
case .failure(let error):
print(error)
}
}
}
- UI는 main 스레드에서 구성되어야 하기 때문에 DispatchQueue를 사용해 main에서 이미지를 할당하자.
728x90
'iOS' 카테고리의 다른 글
[ iOS ] 사진 선택 시 번호 표기(넘버링) 구현 (+ collectionView) (0) | 2022.06.15 |
---|---|
[ iOS ] cell 내 버튼 선택 이벤트 구현 (+ Delegate 패턴) (0) | 2022.06.14 |
[ iOS ] URL로 이미지를 받아 올 경우 Data(contentsOf:)를 사용하면 안 되는 이유 (0) | 2022.06.07 |
[ iOS ] CollectionView 간격 조정하기 (0) | 2022.05.10 |
[ iOS ] isEnabled와 isUserInteractionEnabled 비교 (0) | 2022.04.12 |