2012-06-01 4 views

Antwort

3

Normalerweise deklariere ich (die Methoden von Apple kopierend) Protokolle auf dem Kopf der Klasse, die mit Delegierten dieses Protokolls interagieren werden. (Die UIActionSheet-Headerdatei enthält beispielsweise die Protokolldeklaration für UIActionSheetDelegate.) Technisch spielt es keine Rolle, wo Sie Protokolle deklarieren, solange Sie keine Zirkelreferenz von #import-Anweisungen haben. Dies wird normalerweise nicht passieren, weil die Klasse, die mit dem Protokoll interagiert, dies tut, um zu vermeiden, dass alle anderen Klassen, die nun das Protokoll implementieren, #import benötigen. (UIActionSheet sendet Nachrichten an Ihre Klassen, wenn es über das Protokoll abgewiesen wird, und muss daher keine Ihrer Klassen importieren.)

Wenn Sie ein Protokoll haben und mehrere nicht miteinander in Beziehung stehende Klassen mit Delegaten davon interagieren Protokoll, das wäre ein guter Indikator, um das Protokoll in eine eigene Datei zu stellen, da das Protokoll nicht wirklich einer bestimmten Klasse zugeordnet ist.

1

Ich glaube, Sie sollten eine catagory von UIImagePickerController in getrennten files.Like ImagePickerCtrlCatagory.h und ImagePickerCtrlCatagory.m Im ImagePickerCtrlCatagory.h erklären, wie dies tun

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