美文网首页
分类和扩展

分类和扩展

作者: 进击的阿牛哥 | 来源:发表于2021-12-06 15:37 被阅读0次

一般用分类做什么?

1,声明私有方法

2,分解体积庞大的类文件

3,把framework的私有方法公开

分类的特点

1,运行时决议

2,可以为系统类添加分类(UIview 获取坐标的方法)

分类中都可以添加哪些内容

1,实例方法

2,类方法

3,协议

4,属性(分类当中定义了1个属性,实际上只声明了对应的set get方法,并没有为我们在分类中添加实例变量(通过关联对象为分类添加实例变量))

总结

1,分类添加的方法可以“覆盖”原类方法

2,同名分类方法谁能生效取决于编译顺序

3,名字相同的分类会引起编译报错

能否给分类添加“成员变量”?

能,通过关联对象为分类添加实例变量

关联对象的本质

objc_getAssociatedObject,  remove,

我们添加两个分类,分别为A和B,两个分类当中都有1个同名的方法,那个方法才会最终会生效?实际上取决于分类的编译顺序,最后编译的那个分类当中的同名方法才会最终生效,之前的会被覆盖掉(最后编译的分类的当中方法会最早生效)。

一般用扩展做什么?

1,声明私有属性(不对子类暴露) 2 声明私有方法  3声明私有成员变量

扩展的特点 以及分类的区别

1,编译时决议   (分类是运行时决议)

2,只以声明的形式存在,没有具体实现,多数情况下寄生于宿主类的.m中

(分类可以有声明,也可以有实现)

3,不能为系统类添加扩展(可以为系统类添加分类)

相关文章

  • 分类和扩展

    1.分类1.1将一个复杂的类分成若干个模块儿,其中每个模块儿被称为一个分类1.2分类的作用是降低耦合度1.3语法1...

  • 分类和扩展

    1.分类 分类的作用: 可以为原类添加方法(也可以通过runtime的objc_setAssociatedObje...

  • 分类和扩展

    分类Category 分类是运行时动态决议的,扩展是编译期决议的。通过clang -rewrite-objc ma...

  • 分类和扩展

    一般用分类做什么? 1,声明私有方法 2,分解体积庞大的类文件 3,把framework的私有方法公开 分类的特点...

  • iOS知识基础篇

    category 和 extension 的区别 分类有名字,类扩展没有分类名字,是一种特殊的分类 分类只能扩展方...

  • IOS知识基础篇

    category 和 extension 的区别 分类有名字,类扩展没有分类名字,是一种特殊的分类 分类只能扩展方...

  • 1. iOS面试题基础篇

    category 和 extension 的区别 分类有名字,类扩展没有分类名字,是一种特殊的分类 分类只能扩展方...

  • iOS面试题-基础篇

    category 和 extension 的区别 分类有名字,类扩展没有分类名字,是一种特殊的分类 分类只能扩展方...

  • iOS面试题--基础篇

    category 和 extension 的区别 分类有名字,类扩展没有分类名字,是一种特殊的分类 分类只能扩展方...

  • 一些关键字的使用__weak,__block

    1、category 和 extension 的区别分类有名字,类扩展没有分类名字,是一种特殊的分类分类只能扩展方...

网友评论

      本文标题:分类和扩展

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