[iOS] API 요청하기

HL·2022년 4월 30일
0

iOS

목록 보기
2/22
    // 이미지 URL로부터 이미지 다운로드하는 함수
    // @escaping으로 콜백 함수 만듦
    // 성공하면 UIImage, 실패하면 RequestError
    // RequestError enum으로 따로 정의함
    func downloadImage(urlString: String, completion: @escaping (Result<UIImage, RequestError>)->Void) {
        
        var request = URLRequest(url: URL(string: urlString)!)
        request.httpMethod = "GET"
        let task = URLSession.shared.dataTask(with: request, completionHandler: {
            data, response, error in
            
            // error가 nil이어야됨
            guard error == nil else {
                completion(.failure(.networkError))
                return
            }
            // data가 nil이 아니어야됨
            guard data != nil else {
                completion(.failure(.networkError))
                return
            }
            guard let image = UIImage(data: data!) else {
                completion(.failure(.networkError))
                return
            }
            completion(.success(image))
        })
        task.resume()	// 실행
    }
profile
Frontend 개발자입니다.

0개의 댓글