Effetive Objective - C 1.Objective 24 - 28 分类

1.可用于分散代码

2.利用分类添加方法:  其实就是在运行期动态的想类中添加方法  可能会有同名方法的情况导致方法的覆盖  导致bug的产生  可以将分类的方法加上前缀降低覆盖的几率


分类无法为原类动态的添加实例变量 所以不要再分类中使用属性   在扩展中可以使用

如果想在分类中使用属性可以利用关联对象来实现


要将所有的数据封装在主接口中   这里是唯一能定义实例变量的地方          分类只是扩展原类的的功能   并不封装数据


类扩展:没有名字   声明并实现在主类的实现文件中   可以生命实例变量    变量和函数都是私有的 

优点

1.类扩展有助于对实现细节的隐藏

2.oc的头文件如果引入c++文件则为混编    为了将oc的头文件为纯oc文件 可以在类扩展中引入c++对象 

3.可以在类扩展中修改属性的访问权限   这样既控制了外部的访问  又可以在内部公开一些功能

4.隐藏协议  将协议设置为私有


如果不想讲类名公开可以利用协议隐藏  id<protocol>  (其实用id就可以啦 这样写只是说明了这个id类型一定遵循这个protocol)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值