类别Categroy
- 类别支持在没有源代码的情况下,基于某些特定额场合,为一个类增加功能
可以添加
类方法
实例方法
重写基类方法
不可以添加
属性
实例变量
已存在的同名方法
- 命名规范
文件名称:类别+扩展方法:如 NSString +Deawing.h/.m
使用类别
-使用场景
适合没有源代码的情况下,向已经封住的类中添加方法
为一个类在某些特殊场景下增加功能
对于复杂的大型文件分割实现
-添加类别
自己创建的类
系统的类
第三方库
扩展
扩展支持在编译时,有类的源代码的前提下 ,向类添加功能.可以将扩展做匿名的类别
接口定义在.m文件中@implementation前声明,实现代码仍然在@implementation 内实现.
-扩展支持添加一下成员
属性
实例成员
类方法
实例方法
改写属性的读写属性
使用扩展
- 扩展实现的成员都只能在.m实现文件内部访问,在类外不可以直接访问.
-扩展的主要用途在于信息隐藏,隐藏一些外部无需访问.而内部实现又需要使用的属性,.方法
类的主接口主要用于 "对类外公开"的接口
类的扩展接口主要用于 "对类内可见"的接口