黑马程序员--protocol(协议)_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > 黑马程序员--protocol(协议)

黑马程序员--protocol(协议)

 2015/4/26 19:13:19  孙文君  程序员俱乐部  我要评论(0)
  • 摘要:------Java培训、Android培训、iOS培训、.Net培训、期待与您交流!-------可以用来声明一大堆方法(不能声明成员变量)只要某个类遵守了这个协议,就相当于拥有这个协议中的所有方法声明只要父类遵守了某个协议,就相当于子类也遵守了//定义一个名叫MyProtocol的协议MyProtocol.h@protocolMyProtocol<NSObject>@required//要求实现,不识闲会发出警告,如果什么都不写,默认是@required-(void)test;
  • 标签:程序 程序员 协议
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
  • 可以用来声明一大堆方法(不能声明成员变量)
  • 只要某个类遵守了这个协议,就相当于拥有这个协议中的所有方法声明
  • 只要父类遵守了某个协议,就相当于子类也遵守了
  //定义一个名叫MyProtocol的协议 MyProtocol.h @protocol MyProtocol <NSObject>     @required//要求实现,不识闲会发出警告,如果什么都不写,默认是@required -(void) test; -(void) test2;     @optional//不要求实现 -(void) test3; @end   Person.h @protocol MyProtocol;//协议的提前声明,类似@class @interface Person : NSObject <MyProtocol>   @end   Person.m #import  MyProtocol.h; @implementation Person  -(void) test{   } -(void) test2{   } @end  
  • 一个协议可以遵守其他多个协议,多个协议之间用逗号 隔开
  • 一个协议遵守了其他协议,就相当于拥有了其他协议中的方法声明

@protocol 协议名称 <协议1, 协议2>

@end

1》类遵守协议: @interface 类名 : 父类名<协议名称1,协议名称2> @end 2》协议遵守协议: @protocol 协议名称 <其他协议名称1,其他协议名称2> @end

1. 基协议

  • NSObject是一个基类,最根本最基本的类,任何其他类最终都要继承它
  • 其实还有一个协议,名字也叫NSObject,它是一个基协议,最根本最基本的协议
  • NSObject协议中声明很多最基本的方法,比如descriptionretainrelease
  • 建议每个新的协议都要遵守NSObject协议
要求obj3保存的对象必须是遵守MyProtocol这个协议; NSObject<MyProtocol> *obj3; id<MyProtocol> obj3; 要求obj4,保存的对象必须遵守MyProtocol3,并且继承了Person Person<MyProtocol3> *obj4; @property中声明的属性也可用做一个遵守协议的限制 @property (nonatomic,strong)类名<协议名称> * 属性名; @property (nonatomic,strong)id<协议名称>  属性名;     协议可定义在单独.h文件中,也可以定义在某个类中 1》如果这个协议只用在某个类中,应该把协议定义在该类中 2》如果这个协议用在很多类中,就应该定义在单独文件中   分类可定义在单独.h和.m文件中,也可以定义在原来类中 1》一般情况下,都是定义在单独文件 2》定义在原来类中的分类,只要求能看懂语法     #import "TicketDelegate.h" @interface Person : NSObject -(void) buyTicket; //拥有一个代理属性,代理的类名随便,必须遵守TicketDeltegate协议 @property (nonatomic,retain) id<TicketDelegate> delegate;   @end
上一篇: NHibernate使用简单示例 下一篇: 没有下一篇了!
发表评论
用户名: 匿名