4.协议与分类

2017-07-03  本文已影响18人  开发者老岳

第23条 通过委托与数据源协议进行对象间通讯

多使用位段数据类型

第24条 将类的实现代码分散到便于管理的数个分类中

第25条 总为第三方类的分类名称加前缀

category中的方法可能会覆盖掉原来类的方法,比如NSString有个私有方法,你新增了一个NSString的Category类,并新增了跟该私有方法重名的方法,那么代码将会一直调用拟新增的Category类的新方法。如果有多个分类都覆盖了私有方法,那么最后只会执行一个分类的。
解决方法就是,在创建Category时,类名和方法名加前缀,如:
NSString+ABC_HTTP.h
- (void)abc_urlScreame;

第26讲 勿在分类中声明属性

声明属性需要自己写setter和getter方法。

第27条 使用 “class-continuation分类”隐藏实现细节

oc的动态消息系统决定了类中没有真正的私有变量和私有方法。
这里说的 class-continuation分类 其实就是.m文件里定义的 extension,如下图。可以在里定义方法和实例变量,为啥能定义这些,查看第6条(稳固的ABI)。

第28条 通过协议提供匿名对象

上一篇 下一篇

猜你喜欢

热点阅读