类别和扩展的区别

2016-08-24  本文已影响0人  菜鸟起来

------------类别-----------------

类别中方法的优先级比原来类中的方法高

也就是说,在类别中重写了原来类中的方法,那么类别中的方法会覆盖原来类中的方法

类别中只能声明方法,不能添加属性变量,在运行时分类中的方法与主类中的方法没有区别

通常来讲,类别定义在.h文件中,但也可以定义.m文件中,此时类别的方法就变成私有方法

------------扩展-----------------

扩展中可以声明实例变量,可以声明属性

因为扩展通常定义在主类的.m文件中,所以扩展声明的方法和属性通常是私有的

------------两个的区别--------------

分类是不可以声明实例变量,通常是公开的,文件名是:主类名+分类名.h

扩展是可以声明实例变量,是私有的,文件名为:主类名_扩展标识.h,在主类的.m文件中#import该头文件

上一篇下一篇

猜你喜欢

热点阅读