NSProtocol(一)

NSURLProtocol對(duì)象處理特定于協(xié)議的URL數(shù)據(jù)的加載。
NSURLProtocol類本身是一個(gè)抽象類,它提供用于處理具有特定URL方案的URL的基礎(chǔ)結(jié)構(gòu)。 您可以為應(yīng)用程序支持的任何自定義協(xié)議或URL方案創(chuàng)建子類。


一、概述

應(yīng)用程序不需要直接實(shí)例化一個(gè)NSURLProtocol
子類。 當(dāng)下載開始時(shí),系統(tǒng)創(chuàng)建適當(dāng)?shù)膮f(xié)議對(duì)象來處理相應(yīng)的URL請(qǐng)求。 所有您需要做的是定義您的協(xié)議類,并在應(yīng)用程序啟動(dòng)時(shí)間內(nèi)調(diào)用register Class: class方法,以便系統(tǒng)知道您的協(xié)議。

注意
您不能在watchOS 2和更高版本中使用此類定義自定義URL方案和協(xié)議。

為了支持協(xié)議特定請(qǐng)求的定制,蘋果鼓勵(lì)我們用任何自定義的API來定義NSURLRequest 和NSMutable URLRequest。需要以這種方式擴(kuò)展NSURLRequest和NSMutable URLRequest協(xié)議實(shí)現(xiàn)者可以通過使用NSURLProtocol的類方法來存儲(chǔ)和檢索協(xié)議特定的請(qǐng)求數(shù)據(jù)。 property For Key: in Request:set Property: for Key: in Request:

協(xié)議實(shí)現(xiàn)著的重要職責(zé)是NSURLResponse處理的每個(gè)請(qǐng)求創(chuàng)建一個(gè)NSURLResponse。協(xié)議實(shí)現(xiàn)者可能希望創(chuàng)建一個(gè)自定義的,可變的NSURLResponse類來提供特定于協(xié)議的信息。

二、相關(guān)的方法

1、創(chuàng)建協(xié)議對(duì)象

- init With Request: cached Response: client:初始化并返回協(xié)議對(duì)象。

2、注冊(cè)和注銷協(xié)議類

+ register Class:嘗試注冊(cè)NSURLProtocol
的子類,使其對(duì)URL加載系統(tǒng)可見。

+ unregister Class:注銷NSURLProtocol的指定子類。

3、確定子類是否可以處理請(qǐng)求

+ can Init With Request:返回協(xié)議子類是否可以處理指定的請(qǐng)求。

4、獲取和設(shè)置請(qǐng)求屬性

+ property For Key: in Request:返回與指定的請(qǐng)求中指定的關(guān)鍵字關(guān)聯(lián)的屬性。

+ set Property: for Key: in Request:在指定的請(qǐng)求中設(shè)置與指定鍵相關(guān)聯(lián)的屬性。

+ remove Property For Key: in Request:刪除在指定的請(qǐng)求中與指定鍵相關(guān)聯(lián)的屬性。

5、提供請(qǐng)求的規(guī)范版本

+ canonical Request For Request:返回指定請(qǐng)求的規(guī)范版本。

6、確定請(qǐng)求是否相當(dāng)于緩存

+ request Is Cache Equivalent: to Request:返回兩個(gè)請(qǐng)求是否等同于緩存目的。

7、啟動(dòng)和停止下載

- start Loading開始協(xié)議特定的請(qǐng)求加載。

- stop Loading停止協(xié)議特定的請(qǐng)求加載。

8、獲取協(xié)議屬性

cached Response接收者的緩存響應(yīng)。

client接收者用來與URL加載系統(tǒng)通信的對(duì)象。

request接收方的請(qǐng)求。

9、初始化

- init With Task: cached Response: client:

10、實(shí)例屬性

task

11、類型方法

[+ can Init With Task:}(https://translate.google.com/translate?hl=zh-CN&sl=en&u=https://developer.apple.com/reference/foundation/nsurlprotocol&prev=search)

ps:繼承自NSObject

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,923評(píng)論 18 139
  • 本文是逐行翻譯,便于參照原文,如有歧義或者疑問請(qǐng)閱讀原文比較。于 2017.1.25===============...
    Auditore閱讀 1,544評(píng)論 4 5
  • 從三月份找實(shí)習(xí)到現(xiàn)在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發(fā)崗...
    時(shí)芥藍(lán)閱讀 42,366評(píng)論 11 349
  • 自建模塊類似與selenium中新建模塊,具體方法如下: 1、首先在..\Python27\Lib\site-pa...
    大嬸N72閱讀 974評(píng)論 0 0
  • 時(shí)光漸漸遠(yuǎn)去 腦海中 你的面龐,日見清晰 本以為 時(shí)光,可以磨掉一切 不曾想 你給的痕,與歲月一般,越來越深 最終...
    Paul沐風(fēng)閱讀 160評(píng)論 0 0