phone開發中,自定義協議有什么用?

phone開發中,自定義協議有什么用?

iphone開發中,自定義協議

自定義協議語法如下:

@protocol 協議名稱

方法之聲明

@end

Objective-C2.0中協議的新特性:(1)@optional預編譯指令:表示可以選擇實現的方法(2)@required預編譯指令:表示必須強制實現的方法。

例如:

@protocol FrameworkDelegate

@optional //可選的(正式協議) 有這個做標志

-(void)didReceiveCM:(Framework*)framework ChatMessage:(ChatMessage*)cm;

-(void)QUserArrived:(Framework*)framework AddressBook:(NSMutableArray*)ab;

//如果@optional 放在此處,表示上面2個方法內部必須實現,下面2個方法可選

-(void)AllUserArrived:(Framework*)framework AddressBook:(NSMutableArray*)ab;

-(void)ConversationListChanged:(Framework*)framework ConversationList:(NSMutableArray*)cl;

@end

協議(Protocol)的用法和代碼例子

聲明協議 ? ? ?采用協議 ? ? 實現協議

協議,是通過網絡,計算機使用者進行通訊后,互相進行約定規定的集合。兩個類進行通訊,用協議就比較方便。

一、說明

1.協議聲明了可以被任何類實現的方法

2.協議不是類,它是定義了一個其他對象可以實現的接口

3.如果在某個類中實現了協議中的某個方法,也就是這個類實現了那個協議。

4.協議經常用來實現委托對象。一個委托對象是一種用來協同或者代表其他對象的特殊對象。

5:委托,就是調用自己定義方法,別的類來實現。

6.新特性說明

@optional預編譯指令:表示可以選擇實現的方法

@required預編譯指令:表示必須強制實現的方法

二、定義(自定義協議)

.h

@protocol ContactCtrlDelegate

-(void)DismissContactsCtrl;

@end

@interface ContactsCtrl : UIViewController {

id delegate;

}

@property (nonatomic, assign) id delegate;

.m

@synthesize delegate;

三、例子

例如:UITextView

@protocol UITextViewDelegate

@optional

- (BOOL)textViewShouldBeginEditing:(UITextView *)textView;

- (BOOL)textViewShouldEndEditing:(UITextView *)textView;

- (void)textViewDidBeginEditing:(UITextView *)textView;

- (void)textViewDidEndEditing:(UITextView *)textView;

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text;

- (void)textViewDidChange:(UITextView *)textView;

- (void)textViewDidChangeSelection:(UITextView *)textView;

@end

如果要調用以上這些方法,就必須設置UITextView的委托:TextView.delegate = self;

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容