사과
  • 애플 개발자 문서 한글 번역
  • App Frameworks
    • Foundation
      • 숫자, 데이터와 기본값
      • 문자열과 텍스트
      • 컬렉션
      • 날짜와 시간
      • 데이터 포맷
      • 작업 관리
        • Operation
        • OperationQueue
        • Timer
      • 리소스
        • Bundle
      • 파일 시스템
        • FileManager
      • Notification
        • NSKeyValueObserving
      • URL 로딩 시스템
        • 웹사이트 데이터를 메모리에 저장하기
        • URLSession
          • URLSessionConfiguration
            • urlCache
            • requestCachePolicy
          • configuration
        • URLSessionTask
        • URLRequest
        • URLResponse
        • HTTPURLResponse
        • 캐시 데이터에 접근하기
        • CachedURLResponse
        • URLCache
      • Object Runtime
        • NSValue
    • UIKit
      • UIKit으로 앱 개발
      • 앱과 환경
        • 앱 라이프 사이클 관리하기
        • 앱 실행에 대응하기
        • UIApplication
      • 문서, 데이터와 클립보드
      • Mac Catalyst
        • iPad 앱을 Mac 버전으로 만들기
        • 아이패드 앱의 맥 최적화
      • 뷰와 컨트롤
        • UIView
        • Table Views
          • UITableView
          • UITableViewCell
          • UIRefreshControl
        • UIScrollView
      • View Controllers
        • UIViewController
        • UITableViewController
        • UISearchController
      • 애니메이션과 햅틱
        • 프로퍼티 기반 애니메이션
          • UIViewPropertyAnimator
        • View controller 전환
      • 터치, 누르기, 제스처
        • UIResponder
        • UIKit 제스처 처리
        • 다중 제스처 인식기 조정
        • UILongPressGestureRecognizer
        • UIPanGestureRecognizer
          • maximumNumberOfTouches
          • minimunNumberOfTouches
          • translation(in:)
          • setTranslation(_:in:)
          • velocity(in:)
        • UIGestureRecognizer
    • Swift
      • 스위프트 표준 라이브러리
        • 메모리 직접 관리
          • 포인터 파라미터를 사용하는 함수 호출
          • UnsafePointer
          • UnsafeMutableRawBufferPointer
    • SwiftUI
      • 뷰와 컨트롤
        • View
        • Text
        • TextField
      • 뷰 레이아웃과 표현
      • 그리기와 애니메이션
      • 프레임워크 통합
      • 상태와 데이터 흐름
  • Graphics and Games
    • Core Animation
      • CALayer
      • CAAction
      • CAShapeLayer
      • CADisplayLink
    • Core Graphics
      • CGFloat
      • CGPath
  • App Services
    • Combine
    • WebKit
      • WKWebView
  • Media
    • AVFoundation
      • 시스템 오디오 상호작용
        • AVAudioSession
          • AVAudioSession.Category
            • ambient
            • multiRoute
            • playAndRecord
            • playback
            • record
            • soloAmbient
          • AVAudioSession.Mode
      • AVFoundation 자료형
  • Documentation Archive
    • 번들 프로그래밍 가이드
      • 번들에 대해
      • 번들 구조
    • Key-Value Observing 프로그래밍 가이드
    • Threading 프로그래밍 가이드
      • About Threaded Programming
      • Thread Management
  • ETC
    • Not Found
Powered by GitBook
On this page
  • Declaration
  • Summary
  • 개요
  • 주제
  • Task 상태 컨트롤
  • Task 진행정도
  • Task 일반 정보
  • Task 스케줄링
  • 관련 문서
  • 상속받은 대상
  • 준수하는 프로토콜
  • 같이 보기
  1. App Frameworks
  2. Foundation
  3. URL 로딩 시스템

URLSessionTask

리소스 다운로드와 같이 URLSession에서 수행되는 task

PreviousconfigurationNextURLRequest

Last updated 5 years ago

원문 출처

Declaration

class URLSessionTask: NSObject
@interface NSURLSessionTask : NSObject

Summary

SDKs

  • iOS 7.0+

  • macOS 10.9+

  • tvOS 9.0+

  • watchOS 2.0+

Framework

  • Foundation

개요

URLSessionTask 클래스는 URL session task의 기본 클래스입니다. task는 언제나 세션의 일부이며 인스턴스의 task 생성 메서드를 호출함으로써 만들어낼 수 있습니다. 호출되는 메서드에 따라서 생성될 task의 종류가 결정됩니다. 다음은 URLSession 인스턴스의 메서드입니다.

  • 및 관련 메서드는 인스턴스를 생성합니다. Data task는 서버에 리소스를 요청하고 응답값을 하나 이상의 NSData 객체로써 메모리에 저장합니다. 이 task는 default, ephemeral, shared 세션에서 사용가능하지만 background 세션에서는 사용할 수 없습니다.

  • 및 관련 메서드는 인스턴스를 생성합니다. Upload task는 data task와 비슷하지만 request body를 제공하기가 더 쉽고 서버의 응답을 받기 전에 데이터를 업로드 하는 것이 더 편해집니다. 뿐만 아니라 upload task는 background 세션을 지원합니다.

  • 및 관련 메서드는 인스턴스를 생성합니다. Download task는 리소스를 다운로드하여 바로 디스크의 파일로 저장합니다. download task는 어떤 종류의 세션에서든지 사용할 수 있습니다.

  • 또는 는 인스턴스를 생성합니다. 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 연관된 네트워크 데이터 전송 태스크들의 그룹을 조정하는 객체

https://developer.apple.com/documentation/foundation/urlsessiontask
URLSession
dataTask(with:)
URLSessionDataTask
uploadTask(with:from:)
URLSessionUploadTask
downloadTask(with:)
URLSessionDownloadTask
streamTask(withHostName:port:)
streamTask(with:)
URLSessionStreamTask
웹사이트 데이터를 메모리에 저장하기
URLSession