In genere io (copiando i metodi di Apple) dichiaro protocolli sull'intestazione della classe che interagirà con i delegati di tale protocollo. (Ad esempio, il file di intestazione UIActionSheet contiene la dichiarazione del protocollo per UIActionSheetDelegate.) Non importa realmente tecnicamente dove si dichiarano i protocolli, purché non si disponga di un riferimento circolare delle istruzioni #import
. Questo normalmente non si verifica perché la classe che interagisce con il protocollo lo fa per evitare di dover utilizzare #import
tutte le altre classi che ora implementeranno il protocollo. (UIActionSheet invia messaggi alle tue classi quando viene eliminato tramite il protocollo, e quindi non ha bisogno di #importare nessuna delle tue classi.)
Se si dispone di un protocollo e diverse classi non correlate interagiranno con i delegati di tale protocollo, sarebbe un buon indicatore per mettere il protocollo nel proprio file, perché il protocollo non è realmente associato a una particolare classe.
fonte
2012-06-01 02:34:24