iOS - 类别与类扩展

要点

1. 什么时候使用类别,有什么限制,如何选择用类别还是继承

2. 了解什么是类扩展

 

 

什么是类别

类别(category)允许对现有累进行扩展,在现有的类中添加用户自己的方法。有些类似于C#的扩展方法。

 

什么时候使用类别

  1. 有时我们需要在一个已经定义好的类中增加一些方法,而不想去改写该类。通常的原因是已经有其他代码调用了该类创建对象并使用该类的方法,不能用继承又不方便修改类本身时,这时可以使用类别对该类进行轻量化的扩充,添加新的方法。
  2. 一个类过于庞大,可以对类进行一些拆分方便管理。

 

类别的使用限制

  1. 类别只能扩充方法,而不能扩充成员变量。
  2. 类别中的方法与现有方法重名时将完全覆盖原本类方法。也就是说没有途径访问原本类方法,不能用类似super的样子调用。这极大的限制了类别的作用。

 

类扩展

class extension,一种特殊的匿名的类别,看起来像下面这样。

@interface classA ()

{

NSString* str;

int a;

}

-(void)Method;

@end

 

class extension可以定义变量和property,可以有多个,默认在生成的.m文件最上方就有一个,通常用于实现类似于私有变量、方法的功能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值