@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。