分类、协议

一、分类(category)

1.概念

分类是对类的扩展,当类较大时,想扩展新的方法时,可采用分类进行处

理。分类中不能定义变量,只能定义方法。分类可以访问原始类的变量和方

法。分类命名规则以+分隔。

2.Category的使用场景:

a、当你在定义类的时候,在某些情况下(例如需求变更),你可能想要为其中的某个或几个类中添加方法。

b、一个类中包含了许多不同的方法需要实现,而这些方法需要不同团队的成员实现

c、当你在使用基础类库中的类时,你可能希望这些类实现一些你需要的方法。

3.注意

a、Category可以访问原始类的实例变量,但不能添加变量,如果想添加变量,可以考虑通过继承创建子类。

b、Category可以重载原始类的方法,但不推荐这么做,这么做的后果是你再也不能访问原来的方法。如果确实要重载,正确的选择是创建子类。

c、和普通接口有所区别的是,在分类的实现文件中可以不必实现所有声明的方法,只要你不去调用它。
4.格式
这里写图片描述
**

二、协议(protocal)

**

1、分类
分为可以可选的实现接口@optional,也有必选的实现接口@required。

2、注意

a.一个协议可以扩展自另一个协议,如果需要扩展多个协议中间使用逗号分

隔;

b.协议中定义的方法不一定是必须实现的,可以通过关键字进行@required

和@optional进行设置,如果不设置则默认是@required;

c.协议通过<>进行实现,一个类可以同时实现多个协议,中间通过逗号分隔;

d.协议的实现只能在类的声明上,不能放到类的实现上;

e.协议中不能定义属性、成员变量等,只能定义方法;

3.格式

这里写图片描述

                                            creat by 李梦珂
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值