協議,是經過網絡,計算機使用者進行通信後,互相進行約定規定的集合。兩個類進行通信,用協議就比較方便。下面是 CocoaChina 版主「angellixf」爲新手寫的協議入門介紹以及代碼例子,但願對剛入門開發者有所幫助網絡
1、說明ide
1.協議聲明瞭能夠被任何類實現的方法ui
2.協議不是類,它是定義了一個其餘對象能夠實現的接口atom
3.若是在某個類中實現了協議中的某個方法,也就是這個類實現了那個協議。spa
4.協議常常用來實現委託對象。一個委託對象是一種用來協同或者表明其餘對象的特殊對象。對象
5:委託,就是調用本身定義方法,別的類來實現。接口
6.新特性說明開發
@optional預編譯指令:表示能夠選擇實現的方法it
@required預編譯指令:表示必須強制實現的方法io
2、定義
.h
@protocol ContactCtrlDelegate
-(void)DismissContactsCtrl;
@end
@interface ContactsCtrl : UIViewController {
id delegate;
}
@property (nonatomic, assign) id delegate;
.m
@synthesize delegate;
3、例子
例如: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;