2012-06-01 10 views

risposta

3

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.

1

Credo che si dovrebbe dichiarare una catagory di UIImagePickerController in separato files.Like ImagePickerCtrlCatagory.h e ImagePickerCtrlCatagory.m Nel ImagePickerCtrlCatagory.h, fare come questo

#import <Foundation/Foundation.h> 
    @protocol ImagePickerCtrlDelegate; 
    @interface UIImagePickerController (DissappearDelegate){ 
     id <ImagePickerCtrlDelegate> delegate; 
} 
     @end 
Problemi correlati