2012-06-01 26 views

回答

3

通常,我(複製Apple的方法)在類的頭部聲明協議,該類將與該協議的代理進行交互。 (例如,UIActionSheet頭文件包含UIActionSheetDelegate的協議聲明)。只要你沒有循環引用#import語句,從技術上講,你聲明協議的地方並不重要。這通常不會發生,因爲與協議交互的類可以避免需要現在實現該協議的所有其他類。 (UIActionSheet在通過協議解散時將消息發送給你的類,因此不需要#導入你的任何類。)

如果你有一個協議並且有幾個不相關的類將與那些代理進行交互協議,這將是一個很好的指示器,可以將協議放在自己的文件中,因爲協議並不真正與某個特定的類相關聯。

1

我想你應該申報的UIImagePickerController的產品類別中單獨files.Like ImagePickerCtrlCatagory.h和ImagePickerCtrlCatagory.m 在ImagePickerCtrlCatagory.h,做這樣的

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