OC协议

本文介绍了OC协议的概念,强调其作为一组方法定义的角色。协议通过关键字`@protocol`声明,不能声明变量但能声明方法。任何遵守协议的类都可以使用声明的方法。协议可以继承其他协议,方法可以标记为`@required`(必须实现)或`@optional`(可选实现)。遵守协议的语法在类声明中使用`<协议名称>`,并提供了如何实现协议的方法。协议还可以在定义变量时约束对象必须遵守特定协议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于协议的认知:
协议就是定义了一组方法,然后让其他类去实现
协议的关键字 @protocol
协议里面不能声明变量只能声明方法,任何类只要遵守协议就可以使用所有的声明,父类遵守了某个协议就相当于子类也遵守

在协议中也是可以遵守协议

代码演示:
这里写图片描述

这里要注意的是,上面的代码中NSObject不是我们之前说的NSObject类了,而是NSObject协议,他也是OC中第一个协议。

协议的定义格式
@protocol 协议名称 <父类协议>
方法声明列表
@end

协议中定义的方法还有两个修饰符:
@required:这个表示这个方法是其他类必须实现的,也是默认的值
@optional:这个表示这个方法对于其他类实现是可选的
两个修饰符的主要用途是用于程序员的交流

如何遵守协议

这里写图片描述

这里是 Person 这个类遵守啦 mypotocol 这个协议

格式:
@interface 类名 : 父类名 <协议名称>
@end
如何实现

这里写图片描述

最后在主函数中调用

这里写图片描述

调用结果
这里写图片描述

协议中也是可以遵守协议

这里写图片描述

格式:
@protocol 协议名称 <其他协议名称>
@end

协议和类中都是可以遵守多个协议的。就如同java 中的多实现
格式
@interface 类名:父类名 <协议名称,其他协议名称>
@end

@protocol 协议名 <协议名称,其他协议名称>
@end

协议也可以在定义一个变量的时候来限制这个变量保存的对象遵守某个协议
格式:
类名<协议名称> *变量名
id <协议名称> 变量名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值