iOS之深入解析分类Category的底层原理

举报
Serendipity·y 发表于 2022/02/16 23:10:38 2022/02/16
【摘要】 一、Category 简介 Objective-C 中的 Category 是对装饰模式的一种具体实现。它的主要作用是在不改变原有类的前提下,动态地给这个类添加一些方法。 分类 Category ...

一、Category 简介

  • Objective-C 中的 Category 是对装饰模式的一种具体实现。它的主要作用是在不改变原有类的前提下,动态地给这个类添加一些方法。
  • 分类 Category 可以拓展类的属性、方法、协议等信息。
  • 把一个类拆分成多个模块,如下,需要把 Person 类分成 A 和 B 模块,则分为 Person+A 和 Person+B 模块,这就用到 Category:

在这里插入图片描述

  • 根据苹果官方文档对 Category 的描述,它的使用场景主要有三个:
    • 给现有的类添加方法;
    • 将一个类的实现拆分成多个独立的源文件;
    • 声明私有的方法。
  • 其中,第一个是最典型的使用场景,应用最广泛。
  • 使用分类需要注意:
    • 分类是用于给原有类添加方法的,因为分类的结构体指针中,没有属性列表,所以原则上讲他只能添加方法,不能添加属性(成员变量),实际上他是可以通过其他方式来添加属性,比如 runtime。但是使用 runtime 也只能实现 setter 和 getter 方法,而没有_成员变量,如果调用_成员变量,程序还是会报错。
    • 如果要使用 

文章来源: blog.csdn.net,作者:Serendipity·y,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/Forever_wj/article/details/119972384

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。