Category分类用法

本文介绍了Objective-C中的Category特性,包括其作为分类的用途,如扩展已有类的功能而不修改源代码,便于团队协作。同时强调了Category只能添加方法,不能添加成员变量,并解释了同名方法的调用优先级:分类 > 原始类 > 父类。此外,还提到了类扩展(Class Extension),用于为类添加私有属性和方法,通常在.m文件中定义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • Category有很多种翻译: 分类 \ 类别 \ 类目 (一般叫分类)
  • CategoryOC特有的语法,其他语言没有的语法(类似于C#语言中的扩展方法”partial”关键字)
  • Category的作用
  • 可以在不修改原来类的基础上,为这个类扩充一些方法.
  • 把一个类的内容分在多个不同的文件中存储
  • 便于团队协作开发
  • 注意点:
  • 分类只能增加方法, 不能增加成员变量、@property(可能编译不报错,但是运行有问题)
  • 分类可以访问原来类中的成员变量
  • 如果分类和原来类出现同名的方法,优先调用分类中的方法,原来类中的方法会被忽略
  • 方法调用的优先级(从高到低)
  • 分类(最后参与编译的分类优先),只要有分类就优先调用分类,不考虑与主类的编译顺序。
  • 原来类
  • 父类
  • 什么是类扩展
  • 可以为某个类扩充一些私有成员变量方法
  • 写在.m文件中
  • 英文名是Class Extension
  • 书写格式
  • @interface 类名 ()

    @end

  • 对比分类,就少了一个分类名称,因此也有人称它为匿名分类


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值