概念:定义了一个接口,其他类负责来实现这些接口。如果你的类实现了一个协议的方法时,则说该类遵循此协议。

非正式协议:非正式协议虽名为协议,但实际上是挂于NSObject上的未实现分类(Unimplemented Category)的一种称谓。

协议的格式:

@protocol  协议名  <父协议>
定义方法
@end

协议中定义的方法还有两个修饰符:

  • @required:这个表示这个方法是其他类必须实现的,也是默认的值

  • @optional:这个表示这个方法对于其他类实现是可选的

协议可以和id一起使用

  • id<协议名称> 定义出来的指针,只能指向实现这个协议类的实例对象

conformsToProtocol

  • 使用可以使用 conformsToProtocol: 来检测一个方法是否遵循某协议如:

 id test;
[test conformsToProtocol:@protocol(mDelegate)];

协议不引用任何类它是无类型的,一个类可以同时遵守多个协议。一个协议可以被多个类使用。

最新文章

  1. 2016java技术岗面试题
  2. 浅谈城市规划在移动GIS方面的应用发展
  3. LINUX调优
  4. MyEclipse导入jquery等文件报错的解决方案
  5. ExtJs 5.0需要注意的问题
  6. [css]inline-block
  7. 谈谈MSP430 的框架程序
  8. 使用js在新窗口中POST数据
  9. 使用spol导出exce
  10. 走进Node.js 之 HTTP实现分析
  11. win10 uwp 绑定密码
  12. 24时区,GMT,UTC,DST,CST时间详解
  13. Windows10文件目录下添加 Shift+右键打开管理员Powershell窗口
  14. golang range遍历是新创建对象还是创建对象的引用
  15. 万里长征第一步:Python进程池的一点点小坑
  16. 耐克的定制页用canvas如何实现....跪求前端大神指点。
  17. 4-13 Webpacker-React.js; 用React做一个下拉表格的功能: &lt;详解&gt;
  18. 新提示风格Hint BalloonHint 气泡
  19. html全局属性(收藏)
  20. Struts2详讲

热门文章

  1. BZOJ 1231: [Usaco2008 Nov]mixup2 混乱的奶牛
  2. Codeforces Round #197 (Div. 2) : A
  3. AQuery简介:jQuery for Android
  4. Java使用java命令运行程序出现:找不到主类错误
  5. AD10 gerber生成,及导入cam350 多图详细步骤
  6. 关于新版SDK报错You need to use a Theme.AppCompat theme的两种解决办法
  7. python中 __name__及__main()__的使用
  8. ruby eclipse调试
  9. VM Depot 助您使用本地开源软件架设开发 Web 站点
  10. linux kernel API and google android compile guide