分类

1. 什么是分类

  • Category有多种翻译:分类\类别\类目(一般叫分类)
  • Category的作用
    • 可以在不修改原有类的基础上,为这个类扩充一些方法
    • 一个庞大的类可以分模块开发(如人有学习,运动,运动可以单独放在一个类中,如打排球,跑步等)
    • 一个庞大的类可以由多个人来编写,更有利于团队合作(如张三开发学习这个类,李四开发运动这个类)

2. Category的格式

  • 在.h文件中声明类别

    • 1)新添加的方法必须写在@interface与@end之间
    • 2)ClassName现有类的类名(要为哪个类扩展方法)+3)待声明的类别名称
    • 4)NewMethod新添加的方法

      @interface ClassName (CategoryName)
      NewMethod;//在类别中添加方法
      //不允许在类别中添加变量
      @end
      
    • 注意1)不允许在声明类别的时候定义变量
  • 在.m文件中实现类别
    • 1)新方法的实现必须写在@ineterface与@end之间
    • 2)ClassName现有类的类名
    • 3)CategoryName待声明的类别名称
    • 4)NewMethod新添加的方法的实现
      @implementation ClassName(CategoryName)
      NewMethod
      @end
      
  • 使用Xcode创建分类

  • 分类可以调用原有类的变量

  • 分类注意(多个分类中有同名的方法)
    • 分类(最后参与编译的分类优先)
    • 原来类
    • 父类