IOS开发知识点

分类Category/扩展Extension

2020-10-14  本文已影响0人  Li_Po

\color{red}{分类Category}

分类都做了哪些事情

1.声明私有方法
2.分解体积庞大的类文件
3.把Framework的私有方法公开

特点

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

1.实例方法
2.类方法
3.协议
4.属性

关联对象

分类中添加成员变量可以使用关联对象技术
objc_setAssociatedObject(id _Nonnull object, const void * _Nonnull key, id _Nullable value, objc_AssociationPolicy policy)

objc_getAssociatedObject(id _Nonnull object, const void * _Nonnull key)

objc_removeAssociatedObjects(id _Nonnull object)

关联对象的本质

扩展(Extension)

扩展做什么

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

特点

扩展(Extension)编译时决议。 (分类category是运行时决议)
只以声明的形式存在,多数情况下寄生于宿主类的.m中。
不能为系统类添加扩展。

上一篇下一篇

猜你喜欢

热点阅读