美文网首页面试合集
category和extension

category和extension

作者: CyberDunk1997 | 来源:发表于2020-12-06 00:17 被阅读0次

1. 分类可以做什么?

  1. 声明私有方法
  2. 分解体积庞大的类文件

2.特点

  • 运行时决议
  • 可以为系统类添加分类

3. Category可以添加哪些内容

  • 实例方法
  • 类方法
  • 协议
  • 属性(只能声明setter和getter,并没有实现)

4. 分类的特性

  • 分类添加的方法可以“覆盖”原类的方法(实际上原类的方法还在内存中,只不过分类方法在原类的前面,当方法选择器sel去方法列表中寻找方法时,在前面的分类方法先返回了,自然不会再访问在后面的原类方法)
  • 同名分类方法谁能生效取决于编译顺序,最后被编译的分类方法,会最优先生效
  • 名字相同的分类会引起编译报错

5. 为分类添加成员变量

  • 通过关联对象的技术来为分类添加成员变量
    相关方法

本质

本质

关联对象的结构

关联对象结构

2. Extension

2.1 Extension可以做什么

  • 声明私有属性
  • 声明私有方法
  • 声明私有成员变量

2.1 Extension和Category的区别

  • 编译时决议
  • 只能声明的形式存在,多数情况下寄生于宿主类的.m文件中
  • 不能为系统类添加扩展

相关文章

网友评论

    本文标题:category和extension

    本文链接:https://www.haomeiwen.com/subject/nkwnwktx.html