新闻中心> 文章详情

南京iOS开发培训——IPhone开发Objective-C Protocol

2016年03月14日


  Objective-C里的Protocol 与Java的Interface(接口) 或者 C++的purely virtual class(纯虚类)相同 ,就是用来声明接口的。


  协议是被许多类共享的方法的列表. 列在协议里的方法不负责实现;目的是让别人来实现(比如你)。协议提供一种定义一组同特定的名称相关的方法的途径。这些方法一般放在文档中,让你知道它们如何执行, 一般你能够在自己的类定义里实现它。南京iOS开发培训


  如果协议中定义的方法有 @optional 指令, 如:


  如何列在@otpional后面的方法都是 可选的, 也就是说不一定要实现它.上例中, 采纳Drawing这个协议的类,不是非要实现outline这个方法不可


  如果是@required指令的后面的方法呢,那是一定要实现的。南京iOS开发培训


  协议


  协议声明那些由其他类实现的方法。协议至少在以下3个方面是有用的:南京iOS开发培训


  1)声明那些期望由其他类实现的方法


  2)为隐藏它的类的那些对象声明接口


  3)为那些没有继承关系的类捕获它们之间的相同点


  为其他类声明接口


  Class和category接口 声明那些与特定的类相关的方法。


  非正式协议和正式协议,声明的方法是与任何特定的类无关的


  协议就是一个简单的方法声明的列表,不与类定义关联。举个例子,下面这些方法用来


  报告用户的鼠标行为的,可以被收集到一个协议里:南京iOS开发培训

  如果哪个类想要响应鼠标事件,那么就可采纳这个协议,实现这些方法。


  因为协议与类的继承体系无关,所以可以用那些class和categories都不能使用的方式。


  协议列出的那些方法被实现(或者可能被实现)在其他地方。不关心实现这些方法的类的实体,而关心是否有一个特殊的类 服从这个协议—-是否实现了协议定义的那些方法。南京iOS开发培训


上一篇下一篇
按时发顺丰

技术交流群

Java大数据交流群560819979    加入
Python技术交流群595083299    加入
Oracle技术交流群595119011    加入
Web前端技术交流群604697610    加入
Huawei技术交流群482919361    加入
Redhat技术交流群587875348    加入
UI设计技术交流群511649801    加入
Cisco技术交流群596886705    加入
IT运维技术交流群605888381    加入