URLSessionTask
리소스 다운로드와 같이 URLSession에서 수행되는 task
원문 출처 https://developer.apple.com/documentation/foundation/urlsessiontask
Declaration
Summary
SDKs
iOS 7.0+
macOS 10.9+
tvOS 9.0+
watchOS 2.0+
Framework
Foundation
개요
URLSessionTask 클래스는 URL session task의 기본 클래스입니다. task는 언제나 세션의 일부이며 URLSession 인스턴스의 task 생성 메서드를 호출함으로써 만들어낼 수 있습니다. 호출되는 메서드에 따라서 생성될 task의 종류가 결정됩니다. 다음은 URLSession 인스턴스의 메서드입니다.
dataTask(with:) 및 관련 메서드는 URLSessionDataTask 인스턴스를 생성합니다. Data task는 서버에 리소스를 요청하고 응답값을 하나 이상의 NSData 객체로써 메모리에 저장합니다. 이 task는 default, ephemeral, shared 세션에서 사용가능하지만 background 세션에서는 사용할 수 없습니다.
uploadTask(with:from:) 및 관련 메서드는 URLSessionUploadTask 인스턴스를 생성합니다. Upload task는 data task와 비슷하지만 request body를 제공하기가 더 쉽고 서버의 응답을 받기 전에 데이터를 업로드 하는 것이 더 편해집니다. 뿐만 아니라 upload task는 background 세션을 지원합니다.
downloadTask(with:) 및 관련 메서드는 URLSessionDownloadTask 인스턴스를 생성합니다. Download task는 리소스를 다운로드하여 바로 디스크의 파일로 저장합니다. download task는 어떤 종류의 세션에서든지 사용할 수 있습니다.
streamTask(withHostName:port:) 또는 streamTask(with:)는 URLSessionStreamTask 인스턴스를 생성합니다. stream task는 호스트명과 포트, 또는 net service 객체를 통해서 TCP/IP 커넥션을 생성합니다.
task를 생성한 이후에는 resume() 메서드를 호출함으로써 task를 시작할 수 있습니다. 세션은 요청이 끝나거나 실패할 때까지 task에 대해 강한 참조를 유지합니다. 앱 내부 bookkeeping에 유리하지 않다면 task에 대한 참조를 유지할 필요가 없습니다.
Note
모든 task 프로퍼티는 key-value observing을 지원합니다.
주제
Task 상태 컨트롤
func cancel() task를 취소합니다.
func resume() 일시정지된 task를 재개합니다.
func suspend() task를 일시적으로 정지시킵니다.
var state: URLSessionTask.State task의 현재 상태를 활성, 일시정지, 취소 중, 완료의 형식으로 나타냅니다.
enum URLSessionTask.State task의 현재 상태를 나타내는 상수
var priority: Float 호스트에서 작업을 처리할 상대적인 우선순위. 부동 소수점 0.0(가장 낮은 우선순위)에서 1.0(가장 높은 우선순위)까지의 값으로 표시됩니다.
URL Session Task Priority 호스트에 task 우선순위에 대한 힌트로써 제공되는 상수입니다. priority 프로퍼티와 함께 사용됩니다.
Task 진행정도
var progress: Progress 전체적인 task 진행상황을 보여줍니다.
var countOfBytesExpectedToReceive: Int64 task가 수신할 것으로 예상하는 response body의 바이트 수
var countOfBytesReceived: Int64 task가 서버로부터 수신한 response body의 바이트 수
var countOfBytesExpectedToSend: Int64 task가 전송할 것으로 예상하는 request body의 바이트 수
var countOfBytesSent: Int64 task가 전송한 request body의 바이트 수
let NSURLSessionTransferSizeUnknown: Int64 결정되지 않은 총 전송량
Task 일반 정보
var currentRequest: URLRequest? 현재 task가 처리중인 URL request 객체
var originalRequest: URLRequest? task가 생성될때 전달받은 원본 request 객체
var responsse: URLResponse? 현재 활성화된 request에 대한 서버 response
var taskDescription: String? 앱이 제공하는 현재 task에 대한 설명
var taskIdentifier: Int 해당 세션 내에서 task를 고유하게 식별하는 ID
var error: Error? task 실패 원인을 알려주는 에러 객체
Task 스케줄링
var countOfBytesClientExpectsToReceive: Int64 클라이언트가 수신할 것으로 예상하는 바이트 수에 대한 최고 추정치
var countOfBytesClientExpectsToSend: Int64 클라이언트가 송신할 것으로 예상하는 바이트 수에 대한 최고 추정치
var NSURLSessionTransferSizeUnknown: Int64 결정되지 않은 총 전송량
var earliestBeginDate: Date? 네트워크 로드가 시작되는 가장 빠른 날짜
관련 문서
상속받은 대상
NSObject
준수하는 프로토콜
CVarArg
Equatable
Hashable
NSCopying
ProgressReporting
같이 보기
웹사이트 데이터를 메모리에 저장하기 URL 세션으로부터 데이터 task를 생성하고 데이터를 받아 메모리에 바로 저장하세요.
class URLSession 연관된 네트워크 데이터 전송 태스크들의 그룹을 조정하는 객체
Last updated