手把手教你怎么如何使用分类(category)

前言

  • 本来是不想写这一篇的,因为自己研究也不到位,只会一些对于分类(category)的基本理解,肯定是不如参考文章这一篇写得好。
  • 但是呢,突然看到我旁边某位什么都懂的同学,在看了和我一样的参考文章后,依然是建了个四不像的文件
  • 虽然我估计这么笨的人也少有,但我还是写一篇博客介绍下简单直白的如何新建一个分类(category)吧
参考文章
  • iOS分类(category),类扩展(extension)—史上最全攻略
  • 如果是想了解到底如何实现分类(category)(如想了解背后源码是怎么样的,看这篇文章就对了)
分类(category)的用处和存在意义
  • 我们知道,如果想实现自定义label的话,需要新建一个继承于UILabel的类,并在创建UILabel时,直接创建新建的这个Label类
  • 我们可以在这个新的Label类里增加成员变量,方法等等
  • 而分类(category)可以理解为弱化版的新建类,在这个类里只能增加方法,而不能添加成员变量
  • 而他的好处是,只要import了该分类(category),只要是UILabel(label是用来举例的,任何UI控件都一个道理)都可以使用其中的方法,而不需要在单独创建新的label了
  • 而这在面对想多人合作或者比较复杂的项目时,显然还是非常方便好用的
详细步骤
  • 首先,新建一个Objective-C File,选择Category,名字取为UILabel+Category(你自定义的Category名,下文就以Category替代这个名字,比如可以取名叫做UILabel+LabelHeight)
// //UILabel+LabelHeight.h //zhihu-daily-ImitationDemo // //Created by mac on 2018/11/23. //Copyright ? 2018 姜凯文. All rights reserved. //#import @interface UILabel(LabelHeight)@end

// //UILabel+LabelHeight.m //zhihu-daily-ImitationDemo // //Created by mac on 2018/11/23. //Copyright ? 2018 姜凯文. All rights reserved. //#import "UILabel+LabelHeight.h"@implementation UILabel(LabelHeight)/* // Only override drawRect: if you perform custom drawing. // An empty implementation adversely affects performance during animation. - (void)drawRect:(CGRect)rect { // Drawing code } */@end

  • 好了 这样就OK了 想加什么方法就加进去吧
  • 比如加了类方法,调用时只要[UILabel 类方法]就行了,轻松加愉快
  • 好吧,我也不懂怎么会有人学不会这个
  • 如果想看下怎么写比较好,看第三方库就行,基本里面都会用到这个

    推荐阅读