1.category简介
category是Objective-C 2.0之后添加的语言特性,category的主要作用是为已经存在的类添加方法。它是在运行期决议的。除此之外,apple还推荐了category的另外两个使用场景
1).可以把类的实现分开在几个不同的文件里面。这样做有几个显而易见的好处,a)可以减少单个文件的体积 b)可以把不同的功能组织到不同的category里 c)可以由多个开发者共同完成一个类 d)可以按需加载想要的category 等等。
2).声明私有方法
不过除了apple推荐的使用场景,广大开发者脑洞大开,还衍生出了category的其他几个使用场景:
*1).模拟多继承
*2). 把framework的私有方法公开
Objective-C的这个语言特性对于纯动态语言来说可能不算什么,比如javascript,你可以随时为一个“类”或者对象添加任意方法和实例变量。但是对于不是那么“动态”的语言而言,这确实是一个了不起的特性。
http://tech.meituan.com/DiveIntoCategory.html
http://www.jianshu.com/p/e917e7d95f69
2.实例代码(以文本框的占位符颜色来简单讲解)
屏幕快照 2016-08-08 上午1.34.40.png 屏幕快照 2016-08-08 上午1.35.07.png 屏幕快照 2016-08-08 上午1.39.55.png 屏幕快照 2016-08-08 上午1.40.16.png 屏幕快照 2016-08-08 上午1.40.44.png然后在需要的控制器中去导入头文件,然后直接调用方法就可实现(打断点处即是)
屏幕快照 2016-08-08 上午1.46.42.png
网友评论