ios之Category,Extension,Protocol,delegate

本文详细介绍了Objective-C中的类目(Category)与协议(Protocol),解释了它们的作用及如何使用。类目用于扩展已有类的功能而不改变其源代码,而协议则用于定义对象间通信的标准接口。

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

类目(Category)又叫类别:为封装类添加额外的方法,对现有类扩展

类目定义的方法会成为原始类的一部分,子类可以继承已经添加类目的父类的所有方法,但父类不能拥有子类的类目方法,类目不继承原始类,只兼容和扩展原始类

无法向类目中添加新的实例变量,只能通过子类添加;如果在类目中覆盖现有类方法,会引起super 消息的断裂,因为类目方法更高的优先级,因此一般不要覆盖现有类方法

 

延展(Extension)“匿名”的类目,延展定义类的私有方法,一般是在类的实现文件@implementation之上定义如:Person() 和类目的区别在于括号里面是空的,没有名字的,暂时性的存在,只能本类调用方法,子类也无法调用父类的延展

另外在本类的实现文件@implementation之上也可以定义私有方法,私有的静态变量

延展的特点就是定义私有方法

 

协议(Protocol)没有父类也不能定义实例变量,只声明方法,声明未知类的接口,两个类之间的通信

@required :必须实现。默认

@optional :选择性的实现

NSObject为基本类根类也为基协议,可以写也可以不写

 

代理设计模式:两个对象协同解决难题,用于对象之间的通信

一般用于控件和控制器对象之间的通信,控件事件发生要通过控制器行为表现

就是说该对象类有委托方法,实现委托方法(遵守委托协议)需要在其他类中实现,通过其他类对象来代理解决

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值