------------类别-----------------
类别中方法的优先级比原来类中的方法高
也就是说,在类别中重写了原来类中的方法,那么类别中的方法会覆盖原来类中的方法
类别中只能声明方法,不能添加属性变量,在运行时分类中的方法与主类中的方法没有区别
通常来讲,类别定义在.h文件中,但也可以定义.m文件中,此时类别的方法就变成私有方法
------------扩展-----------------
扩展中可以声明实例变量,可以声明属性
因为扩展通常定义在主类的.m文件中,所以扩展声明的方法和属性通常是私有的
------------两个的区别--------------
分类是不可以声明实例变量,通常是公开的,文件名是:主类名+分类名.h
扩展是可以声明实例变量,是私有的,文件名为:主类名_扩展标识.h,在主类的.m文件中#import该头文件
网友评论