协议protocol

自定义协议语法如下:
@protocol 协议名称
方法之声明
@end
Objective-C2.0中协议的新特性:(1)@optional预编译指令:表示可以选择实现的方法(2)@required预编译指令:表示必须强制实现的方法。

例如:

@protocol FrameworkDelegate <NSObject>
@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预编译指令:表示必须强制实现的方法

协议,OC 没有多继承,不过可以通过协议来委托或者叫代理



其实协议就相当于Java 中的interface 或者C++ 中的virtual class。

猜你喜欢

转载自fantom.iteye.com/blog/1769795