第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)。
网友评论