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;

你可能感兴趣的:(phone开发中,自定义协议有什么用?)