新闻中心> 文章详情
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开发培训