Domanda

Bene, NSURLProtocol è giusto piuttosto generica? E 'per la definizione di tutti i tipi di protocolli, non è vero?

Quindi, perché non c'è niente come NSHTTPURLProtocol? Invece, c'è una categoria informale NSURLRequest con roba HTTP specifica. Perché hanno fatto che in questo modo? Perché nessun protocollo HTTP personalizzato, invece?

Qual è l'idea alla base di mettere tutta questa roba in NSURLRequest piuttosto che in un protocollo personalizzato per HTTP?

HTTP Certo è spesso usato, ma in ogni modo: E 'di confusione per comprendere l'intero Sistema URL Caricamento di Cocoa/CocoaTouch. Ora ci sono due documenti. Uno dice, "creare una sottoclasse NSURLProtocol personalizzato per il proprio protocollo". L'altro dice: "creare categorie informali come quelle per la roba HTTP su NSURLRequest".

La speranza qualcuno con una profonda comprensione può chiarire che fino;)

È stato utile?

Soluzione

L'sono diverse buone ragioni:

  1. Non si può mai avere accesso alla NSURLProtocol-sottoclasse che sta alimentando la connessione; solo la NSURLConnection stessa oggetto. Pertanto, anche se sono state aggiunte tali metodi a una classe NSHTTPURLProtocol ipotetica, come è possibile mai accedervi?

  2. NSURLConnection utilizza l'oggetto di richiesta per determinare quale protocollo lo gestirà. Pertanto, tutte le proprietà della richiesta devono essere conosciute prima di creare l'oggetto protocollo. Ad esempio, è possibile creare un protocollo personalizzato che sostituisce l'implementazione predefinita HTTP, ma solo per alcuni ospiti.

  3. Fornire tutte le impostazioni di up-front è un più ordinato molto. E se fosse possibile accedere all'oggetto di protocollo e impostare le proprietà su di esso a metà carico? Come dovrebbe gestirli -? Ignorano, eccezioni, o tentare di regolare

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top