선언

class URLSession : NSObject

https://hcn1519.github.io/articles/2017-07/iOS_URLSession

https://hcn1519.github.io/articles/2017-07/iOS_URLSession [iOS URLSession 이해하기

iOS에서 네트워킹을 도와주는 URLSession API에 대해 알아봅니다.

hcn1519.github.io](https://hcn1519.github.io/articles/2017-07/iOS_URLSession)

  • 타입프로퍼티

shared

공유 싱글톤 세션 객체

선언

class var shared: URLSession { get }

델리게이트나 세션구성을 지원하지 않고, 제한적인 부분들이 많기 때문에 간단한 데이터들을 가져올 때 주로 사용한다.

  • 인스턴스메서드

dataTask(with:completionHandler:)

지정된 URL의 내용을 검색하고 결과를 파일에 저장하고 완료시 핸들러를 호출하는 태스크를 만든다.

선언

func dataTask(with url: URL, completionHandler: @escaping (Data?, URLResponse?, Error?) -> Void) -> URLSessionDataTask

  • 인스턴스메서드

init(configuration:delegate:delegateQueue:)

지정된 세션 구성, 델리게이트, 델리게이트 큐를 사용하여 세션을 만든다.

선언

init(configuration: URLSessionConfiguration, delegate: URLSessionDelegate?, delegateQueue queue: OperationQueue?)

  • 인스턴스메서드

downloadTask(with:)

지정된 URL의 내용을 검색하고 결과를 파일에 저장하는 다운로드 태스크를 만든다.

선언

func downloadTask(with url: URL) -> URLSessionDownloadTask

  • 태스크를 만든 후, 반드시 resume()메서드를 호출해야 작업이 시작된다.

  • URLSessionDelgate를 통해 지정된 메소드를 호출하는 형태로 response를 받을 때 사용된다.

  • 인스턴스메서드

downloadTask(with:completionHandler:)

지정된 URL의 내용을 검색하고 결과를 파일에 저장하고 완료시 핸들러를 호출하는 다운로드 태스크를 만든다.

선언

func downloadTask(with url: URL, completionHandler: @escaping (URL?, URLResponse?, Error?) -> Void) -> URLSessionDownloadTask

  • 설정된 Task의 Completion Handler 형태로 response를 받을 때 사용된다.

  • OperationQueue의 타입프로퍼티

main

메인스레드와 연결된 오퍼레이션큐를 반환한다.

선언

class var main: OperationQueue { get }

  • URLSessionConfiguration의 타입프로퍼티(default, ephemeral, background)를 이용하여 세션의 종류를 지정할 수 있다.