接口主要用于定义规范,定义一个接口关键字使用interface。而在Object C 中@interface是用于定义一个类的。在Object C中有一个协议(protocol) 的概念,
协议(Protocol) 在列出的方法在本类中并没有相应实现,而是别的类来实现这些方法,而定义协议必须使用protocol关键字。
一. 如何定义protocol的定义
如何使用XCode新建一个协议.h 文件
定义协议代码如下:
从以上代码可以看到,我们可以了解到定义一个协议基本如下结构:
@protocol protocolName<NSObject>
@required
//方法声明
@optional
//方法声明
.......
@end
从刚才的代码中,定义了一个名为ProtocolCom的协议,其中有两个方法 eat ,write; ,接口就是用于定义规则的,这里就涉及到@required,@optional 。 这两个标注在方法上面是有特殊含义的,这个后面详细说明。
#import <Foundation/Foundation.h> @protocol ProtocolCom @required -(void) eat; @optional -(void) write; @end
从上面修改的代码对比来看,在协议定义后面缺少了<NSObject> ,这段代码仍然能够正常运行,其实<NSObject>也本身可以理解为ProtocolCom要遵循NSObject 协议,这个和.NET中一个类如果没有显示指定继承哪个类,那么默认就是继承的Object类的道理是一样的,所以这里可以省略。