Category
分类的基本使用
- 方法:
- 方法的声明:
- 方法的实现:
- 所以:通过分类给某一个类扩充方法,也分为声明和实现两个部分
分类的声明
@interface ClassName(CategoryName)
NewMethod;//在类别中添加方法
不允许在类别中添加变量
@end
ClassName:需要给那个类扩充方法
CategoryName:分类的名称
NewMethod:扩充的方法
分类的实现
@implementation ClassName(CategoryName)
NewMetnod
... ...
@end
分类的注意事项
- 分类用于给原有类添加方法,它只能添加方法,不能添加属性(成员变量);
- 分类中的@property,只会生成setter/getter方法的声明,不会生成实现以及私有的成员变量;
- 可以在分类中访问原有类的.h中的属性(
仅限于访问.h中的属性
); - 如果分类中有和原有类中同名的方法,则分类同名方法会覆盖原有类中的方法(开发中尽量不要这样写);
-
如果多个分类中都有和原有类中同名的方法,那么调用该方法是由编译器调用最后一个分类中的方法,如下图:会调用分类BBB