URLSessionTask

Panther·2021년 4월 4일
0

URLSession, URL Loading System에 대한 내용이 담긴 링크를 아래에 남기겠습니다.

URLSession
https://developer.apple.com/documentation/foundation/urlsession
https://velog.io/@panther222128/URLSession-6ikv1hbi

URL Loading System
https://developer.apple.com/documentation/foundation/url_loading_system
https://velog.io/@panther222128/URL-Loading-System

https://developer.apple.com/documentation/foundation/urlsessiontask

"A task, like downloading a specific resurce, performed in a URL session."

Declaration

class URLSessionTask : NSObject

Overview

URLSessionTask 클래스는 URL 세션에서 수행하는 작업에 대한 기반이 되는 클래스입니다. 수행작업은 항상 세션에 속하는 부분이고, URLSession 인스턴스에 작업 생성 메소드를 호출하는 것을 통해 수행작업을 생성할 수 있습니다. 수행작업의 유형은 어떤 메소드를 호출하느냐에 따라 결정됩니다.

  • URLSessiondataTask(with:) 메소드와 URLSessionDataTask 인스턴스를 생성하기 위한 메소드를 사용하는 유형이 있습니다. 데이터 수행작업은 리소스를 요청하고, 하나 이상의 NSData 객체가 메모리에 저장될 수 있도록 서버 응답을 반환합니다. default, ephmeral, shared 세션에서 지원되지만, 백그라운드 session에서 지원되지는 않습니다.

  • URLSessionuploadTask(with:from:) 메소드와 URLSessionUploadTask 인스턴스 생성을 위한 메소드를 사용하는 유형이 있습니다. 업로드 수행작업은 서버의 응답을 기다리기 전에 데이터를 업로드할 수 있도록 요청 body를 더 쉽게 제공한다는 점을 제외하면 데이터 작업과 유사합니다. 또한, 데이터 작업과 다르게 백그라운드 세션이 지원됩니다.

  • URLSessiondownloadTask(with:)URLSessionDownloadTask 인스턴스를 생성하기 위한 메소드를 사용하는 유형이 있습니다. 데이터 다운로드는 디스크에 직접적으로 리소스를 다운로드합니다. 다운로드 수행작업은 모든 세션 유형에서 지원됩니다.

  • URLSessionStreamTask<c/ode> 인스턴스를 생성하기 위해 URLSessionstreamTask(withHostName:port:) 혹은 streamTask(with:) 메소드를 사용하는 유형이 있습니다. 스트림 수행작업은 호스트 이름과 포트 혹은 넷 서비스 객체로부터 TCP/IP 연결을 형성합니다.

수행작업을 생성한 후 resume() 메소드를 호출하는 것을 통해 시작할 수 있습니다. 그러면 세션은 요청이 끝나거나 실패할 때까지 수행작업에 강한 참조를 유지하고 있을 것입니다. 앱 내부에서 유용하지 않다면 수행작업에 대한 참조를 유지하고 있을 필요는 없습니다.

Note
모든 수행작업 속성은 key-value observing을 지원합니다.

0개의 댓글