[英]Objective-C Protocols
我在名为TileOverlay.h的文件中遇到了以下代码:
@protocol TileOverlay <MKOverlay>
我试图明确地了解这是在做什么。 然后,其他几个叠加层将导入此.h文件。 这个文件实际上是否只是创建MKOverlay类的修改版本?
如果没有,您能否澄清一下它的作用?
您可以想到诸如Java或C#中的接口之类的协议,基本上它们声明实现类必须遵循的协定。 区别在于在Objective C中,您可以使某些声明的方法为可选。
在Objective-C中的协议就是您在Java或C#中称为接口的协议。 这是其他任何类都可以实现,在OBJ - C的说法符合合同。
这个:
@protocol TileOverlay <MKOverlay>
定义一个名为TileOverlay
的协议,该协议本身扩展了MKOverlay
。 那就是通过符合TileOverlay
您还必须符合MKOverlay
。
就像Jave或C#中的接口一样,Obj-C中的协议与实现无关。 它什么也没做。 它只是编译时和运行时的标记(如果需要),以检查某些功能是否存在。
这称为协议继承。
MKOverlay
是一个协议,为对象定义了一组方法。
TileOverlay
继承了MKOverlay
,这意味着符合对象TileOverlay
,应该实现从方法MKOverlay
从和方法TileOverlay
这是一个更多讨论协议继承的链接
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.