Category使得开发过程中,减少了继承的使用,避免子类层级的膨胀。合理使用,可以在不侵入原类代码的基础上,写出漂亮的扩展内容。我更习惯称之为“分类”。
Category和Extension类似,都是对原类的扩展,区别是前者需要提供Category的名称,并且不直接支持属性;后者为匿名,多存在于类的实现文件,观感上实现属性、变量、方法的私有效果。
主要记录分类使用过程中常涉及的内容:
1.关联对象的使用
分类虽然不直接支持属性,但是可以利用关联对象的方法,达到属性的正常使用效果。
添加常用的刷新类库MJRefresh:https://github.com/CoderMJLee/MJRefresh
为了避免原代码被侵入,采用了分类方案,给UIScrollView添加新的属性和方法。新建了一个分类UIScrollView+RefreshControl,在.h文件中声明了几个属性:
延伸阅读
学习是年轻人改变自己的最好方式