在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
简单的介绍 1.1定义协议: 创建一个.h文件 1: _MyProtocolName.h 2: @protocol MyProtocolName <NSObject> 3: @end 注:协议中没有变量; <NSObject>是代表在此声明的协议是NSObject协议的衍生协议(不是NSObject类); 1.2使用协议: 1: @interface CustomView:UIView<MyProtocolName> 代表CustomView遵循我们制定的这个协议,需要实现协议的方法 1.3用协议修饰变量: 如果这样定义一个变量: 1: id<MyProtocolName>myNewVariable; 那么myNewVaiable是遵循我们制定的这个MyProtocolName协议的
如果定义函数时: 1: - (void) doSomethingWithThisObject: (id<MyProtocolName>) aObject
那么这个函数的参数是需要遵循我们制定的这个MyProtocolName协议的
============接下来看下如何利用协议实现委托========= 目的:将A的事情委托给B来做 A.h------------------------------------------------ @protocol Mydelegate//协议的声明 -(void)Fun; @end
@interface A:NSObject { id<Mydelegate> delegate;//声明一个委托对象,我们要把事情委托给实现Mydelegate协议的类 } @property(assign,nonatomic) id<Mydelegate> delegate; @end A.m--------------------------------------------- @implementation -(void)init { delegate = B; } -(void)FunToOther { [delegate Fun];//将消息发送给委托去处理 } @end
委托对象的实现 B.h--------------------------------------------- #import"A.h" @interface B:NSObject<MyDelegate> @end B.m--------------------------------------------- @implementation -(void)fun { //实现Mydelegate中制定的方法 } @end 这样的话A就可以委托B去做fun这件事情了。 |
请发表评论