一、extension 扩展,又叫做匿名分类

1.可以扩展属性和成员变量

2.可以扩展方法

使用扩展的好处: 将内部使用的属性和方法放在扩展中,可以隐藏实现细节,保证头文件的精简

注意:子类无法访问父类在类扩展中声明的属性和方法。

一个扩展的示例:

iOS Extension和Category

扩展一般放在类的实现文件顶部,即.m文件的顶部,也可以用创建Extension文件,扩展只有.h文件

对比分类,扩展没有具体的名字,即匿名分类

二、category 分类  

1.以关联属性的方式添加属性,不可以添加成员变量

2.添加方法

使用分类的好处:将类的实现代码划分成易于管理的小块

一个分类的示例:

iOS Extension和Category

 

三、常见面试题:

1.为什么分类不可以添加成员变量?

分类的底层实现是分类结构体,里面没有成员变量列表,所以不能添加成员变量

2.扩展和分类区别是什么?

扩展是编译时期就把数据合并到类中

分类是在运行期才将数据合并至类中

 

 

相关文章:

  • 2022-12-23
  • 2021-12-03
  • 2022-12-23
  • 2022-12-23
  • 2021-05-12
  • 2021-03-31
  • 2022-12-23
猜你喜欢
  • 2022-02-15
  • 2022-01-04
  • 2021-10-08
  • 2022-01-15
  • 2021-09-19
  • 2022-02-12
相关资源
相似解决方案