ios之Category,Extension,Protocol,delegate

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

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

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

 

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

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

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

 

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

@required :必须实现。默认

@optional :选择性的实现

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

 

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

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

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

 

 

 

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值