【Objective-C 篇】 ☞ 7. Category、Extension

分类 Category

  分类只能给类扩充方法,不能添加属性!

  1.  什么是Category
    • Category有很多种翻译:分类 / 类别 / 类目(一般叫分类)
    • 分类是一个类的补充,是类的一部分。
    • Category的作用:
      • 可以在不修改原来类的基础上,为这个类扩充一些方法。(使用继承也可以,在子类中扩充父类没有的方法)
      • 一个庞大的类可以分模块开发
      • 一个庞大的类可以由多个人来编写,更有利于团队合作
    • 常见用法
      • 将一个类分成若干个部分,便于阅读和管理
      • 给一个已有的类通过定义分类的方式增加功能(经常给系统的类扩充方法)
  2.  语法格式

@interface 类名 (分类名)

//声明扩充的方法

@end

@implementation 类名 (分类名)

//实现扩充的方法

@end

  创建一个分类:

    

  分类的注意事项:

  • 分类是用于给原有类添加方法的, 它只能添加方法, 不能添加属性(成员变量)
  • 分类中定义@property属性, 只会生成setter/getter方法的声明,不会生成方法的实现和实例变量。
  • 可以在分类中访问原有类中.h中的属性

    方法的调用顺序: 1.分类 —> 2.本类  —> 3.父类

扩展 Extension

  匿名分类    在类的.m文件中定义扩展,在扩展中定义私有属性和私有方法。

  1.  概念
    • Extension有很多种翻译:扩展 / 延展 / 匿名分类(一般叫扩展)
    • 扩展是一特殊的分类, 没有分类名。
    • 可以在扩展中定义实例变量,定义属性,增加方法。
  2.  语法格式

@interface 类名 ( )

//声明私有的成员变量

//声明私有的属性

//声明私有的方法

@end

  • 扩展最常用的方式是:

    在类的.m文件中定义扩展,在扩展中定义私有的属性和声明私有的方法。

    在UI中常用扩展来定义私有属性!

Category练习:

  

 

posted @ 2017-03-05 14:20  专注·精彩  阅读(448)  评论(0编辑  收藏  举报