An Abstract class that handles the loading of protocol-specific URL data.
데이터 로딩을 다루는 추상 클래스
class URLProtocol : NSObject
해당 클래스를 다이랙트하게 초기화 하기 보다는 특정 앱의 커스텀 프로토콜 또는 URL 스키마가 해당 클래스를 상속 받게 하여 생성해야 합니다. 다운로드가 시작되면 시스템은 적합한 프로토콜 오브젝트를 생성하여 상응하는 url요청을 처리합니다.
Note: Watch OS 2 또는 이후 버전에는 해당 클래스를 사용하여 커스텀 URL 스키마와 protocol을 정의하면 안됩니다.
protocol-specific 요청을 지원하기 위해서는 URLRequest 클래스의 extension
을 생성하여 필요한 모든 커스텀 API를 지원할 수 있습니다.property(forKey: In:)
그리고 setProperty(_ forKey: int:)
을 활용하여 protocol-specific 요구 데이터를 저장할 수 있습니다.
해당 클래스의 메서드를 override할 때 task를 파라미터로 받는 메서드를 상속받는 것을 시스템은 선호하기 때문에 왠만하면 같은 이름을 갖는 메서드라도 task를 파라미터로 받는 메서드를 상속받는 것이 좋습니다.
추후에 추가할 예정입니다.
[참고자료]:
URL Protocol | Apple Developer Document
[Unit Testing URLSession using URLProtocol - Dhawal Dawar](