iOS特性之协议

本文介绍了Objective-C中的协议,包括如何定义、使用协议,@required和@optional的区别,同时遵循多个协议,正式协议与非正式协议的概念。通过示例代码展示了类如何实现协议中的方法,并强调了未实现@optional方法的调用会导致错误。
摘要由CSDN通过智能技术生成

接口主要用于定义规范,定义一个接口关键字使用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类的道理是一样的,所以这里可以省略。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值