Category(分类,类目) 的定义和使用
Extension 延展
Protocol 协议
Extension 延展的主要作用:为类添加”私有”方法.
面向对象编程的另外一个名字叫做面向接口编程.
我们在设计一个类的时候,有些方法需要对外公开(接口), 有些方法可能仅仅内部使用.
Extension 的功能是帮助我们去管理这些内部使用的方法(私有方法).
Extension 针对的是自己的类,必须有源代码的类.
延展 也是扩充类的功能的一种方式 , 只不过延展扩充的内容是私有的 , 实在 .m 文件中定义的 . 延展 即可以扩展方法也可以扩展实例变量 , 只不过都是私有的 , 外界无法直接访问 . 延展 是为有源代码的类扩充内容 .(extension)
Protocol 协议
Protocol, 是iOS开发中常用的技术
协议是一套标准(一堆方法的声明), 只有.h文件
接受协议的对象实现协议中定义的方法.
Extension 延展
Protocol 协议
Extension 延展的主要作用:为类添加”私有”方法.
面向对象编程的另外一个名字叫做面向接口编程.
我们在设计一个类的时候,有些方法需要对外公开(接口), 有些方法可能仅仅内部使用.
Extension 的功能是帮助我们去管理这些内部使用的方法(私有方法).
Extension 针对的是自己的类,必须有源代码的类.
延展 也是扩充类的功能的一种方式 , 只不过延展扩充的内容是私有的 , 实在 .m 文件中定义的 . 延展 即可以扩展方法也可以扩展实例变量 , 只不过都是私有的 , 外界无法直接访问 . 延展 是为有源代码的类扩充内容 .(extension)
Protocol 协议
Protocol, 是iOS开发中常用的技术
协议是一套标准(一堆方法的声明), 只有.h文件
接受协议的对象实现协议中定义的方法.
/** * 协议,就相当于一个任务清单,规定了要做的操作.(只有一系列方法的声明).谁服从该协议,谁就要实现协议中的方法.(完成任务中清单中的任务).所以协议只有.h文件,没有.m文件. */
@protocol TeachingProtocol <NSObject>
//@optional可选的,被它修饰的方法服从协议的类,可以选择实现. (可以实现,也可以不实现).
//@required必须的,被它修饰的方法服从协议的类,必须实现(没有商量的余地)
@optional
- (void)teachKVC;//讲KVC
@required//必须得做
- (void)teachMemory;//讲内存
@end
//<> 表示服从协议,服从的协议写在<>之内
@interface Person :NSObject <TeachingProtocol>
@end