前言
之前的项目在弄页面元素颜色时候经常直接使用UIColor的一个调用16进制绘制颜色的方法。后来自己建了一个项目,找不到那个方法,对比发现是之前同事写了一个UIColor的category。
一、分类(category)
作用:在类现有的方法的基础上添加方法,可以直接用[UIColor XXXX]这种消息形式调用。
使用地方:基本上都是系统自带的类(自己写的类基本方法都写上了,不需要扩展吧)。
操作步骤:
1、category创建
2、以UIColor为例
3、方法定义(实现方法网上有很多,篇幅原因就不贴了)
4、调用(需要import的,但是由于为系统自带的类写扩展,可以写个pch文件)
以上就是category的简单使用,category只能扩展方法,不能扩展属性
二、类扩展(extension)
1.类扩展(extension)是category的一个特例,有时候也被称为匿名分类。他的作用是为一个类添加一些私有的成员变量和方法。
2.类扩展能写点啥?和分类不同,类扩展即可以声明成员变量又可以声明方法。
3.类扩展的使用,在.m文件中添加如下
@interface ViewController()//这就是类扩展的写法
@end
在上方写定义,在implementation中写实现。
4.类扩展可以定义在.m文件中,这种扩展方式中定义的变量都是私有的,也可以定义在.h文件中,这样定义的代码就是共有的,类扩展在.m文件中声明私有方法是非常好的方式。
5.类扩展中添加的新方法,一定要实现。categorygory中没有这种限制。