0

まあ、NSURLProtocolかなり一般的ですよね?あらゆる種類のプロトコルを定義するためのものですね。

では、なぜ のようなものがないのNSHTTPURLProtocolでしょうか。代わりに、特定の HTTP 要素を含む NSURLRequest に関する非公式のカテゴリがあります。なぜ彼らはこのようにしたのですか?代わりにカスタム HTTP プロトコルがないのはなぜですか?

NSURLRequestHTTP 用のカスタム プロトコルではなく、これらすべてを独自のプロトコルに組み込むことの背後にある考え方は何ですか?

確かに HTTP はよく使われますが、とにかく: の URL ローディング システム全体を理解するには混乱しますCocoa/CocoaTouch。これでドキュメントが 2 つになりました。1 つは、「独自のプロトコルのカスタムNSURLProtocolサブクラスを作成する」というものです。もう1つは、「HTTPのもののような非公式のカテゴリを作成する」というものですNSURLRequest

深い理解のある人がそれを解決できることを願っています;)

4

1 に答える 1

1

いくつかの正当な理由があります。

  1. NSURLProtocol接続を強化している -subclass にアクセスすることはできません。NSURLConnectionオブジェクト自体のみ。したがって、そのようなメソッドが仮想NSHTTPURLProtocolクラスに追加されたとしても、どのようにしてそれらにアクセスするのでしょうか?

  2. NSURLConnectionrequest オブジェクトを使用して、それを処理するプロトコルを決定します。したがって、プロトコル オブジェクトを作成する前に、要求のすべてのプロパティを把握しておく必要があります。たとえば、特定のホストに対してのみ、デフォルトの HTTP 実装をオーバーライドするカスタム プロトコルを作成できます。

  3. すべての設定を前もって提供する方がはるかに優れています。ロード中にプロトコル オブジェクトにアクセスしてプロパティを設定できるとしたらどうでしょうか。それらをどのように処理する必要がありますか-無視、例外、または調整を試みますか?

于 2010-01-22T16:24:16.067 に答える