1 Category定义:
Category有很多种翻译: 分类 \ 类别 \ 类目 (一般叫分类)
Category是OC特有的语法,其他语言没有的语法,可以在不修改原来类的基础上,为这个类扩充一些方法
2 Category特点:
2.1 分类可以访问原来类中的成员变量
2.2 如果分类和原来类出现同名的方法,优先调用分类中的方法,原来类中的方法会被忽略
方法调用的优先级(从高到低) 、分类(最后参与编译的分类优先)、原来类、父类
2.3
3 Category的价值
3.1 方便团队合作开发,防止多个人修改同一个文件
3.2 模块化--实现了类的相关方法的模块化
把不同的方法分配到了不同的分类文件中 + 可以用一个分类来代表一类功能(一个模块)
3.3 可以为系统自带的类扩充功能----例NSString
在main函数入口进行测试NSString的分类函数numberCount(找出字符串中数字个数)



4 Category边界
分类只能增加方法,不能增加成员变量
5 关联1个概念类扩展
可以为某个类扩充一些私有的成员变量和方法,写在.m文件中,英文名是Class Extension,
@interface 类名 ()
声明私有变量
@end
对比分类,就少了一个分类名称,因此也有人称它为”匿名分类”



以上代码参考MJ的资料
网友评论