세상을 더 편리하게
article thumbnail
728x90

이번 장에서는 Combine의 실제 사용 사례를 중심으로 알아보고자 한다.

사실 Combine에서 자주 쓰이는 부분은 URLSession일 것 같다.

URLSession With Combine

// 애플 공식 문서 예시 코드 살짝 수정
struct User: Codable {
    let name: String
    let userID: String
}
let url = URL(string: "https://example.com/endpoint")!
cancellable = urlSession
    .dataTaskPublisher(for: url)
    .tryMap() { element -> Data in
        guard let httpResponse = element.response as? HTTPURLResponse,
            httpResponse.statusCode == 200 else {
                throw URLError(.badServerResponse)
            }
        return element.data
        }
    .decode(type: User.self, decoder: JSONDecoder())
    .sink(receiveCompletion: { print ("Received completion: \($0).") },
          receiveValue: { user in print ("Received user: \(user).")})

https://developer.apple.com/documentation/foundation/urlsession/processing_url_session_data_task_results_with_combine

 

728x90
profile

세상을 더 편리하게

@쵱니

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!