美文网首页
(九)分类(category)和类扩展(extension)

(九)分类(category)和类扩展(extension)

作者: 叔叔不吃棒棒糖 | 来源:发表于2017-07-03 11:26 被阅读15次

    前言

    之前的项目在弄页面元素颜色时候经常直接使用UIColor的一个调用16进制绘制颜色的方法。后来自己建了一个项目,找不到那个方法,对比发现是之前同事写了一个UIColor的category。

    一、分类(category)

    作用:在类现有的方法的基础上添加方法,可以直接用[UIColor XXXX]这种消息形式调用。
    使用地方:基本上都是系统自带的类(自己写的类基本方法都写上了,不需要扩展吧)。
    操作步骤:
    1、category创建

    category创建.png

    2、以UIColor为例

    以UIColor为例.png

    3、方法定义(实现方法网上有很多,篇幅原因就不贴了)

    扩展方法定义.png

    4、调用(需要import的,但是由于为系统自带的类写扩展,可以写个pch文件)

    UIColor扩展调用.png

    以上就是category的简单使用,category只能扩展方法,不能扩展属性

    二、类扩展(extension)

    1.类扩展(extension)是category的一个特例,有时候也被称为匿名分类。他的作用是为一个类添加一些私有的成员变量和方法。

    2.类扩展能写点啥?和分类不同,类扩展即可以声明成员变量又可以声明方法。

    3.类扩展的使用,在.m文件中添加如下

     @interface ViewController()//这就是类扩展的写法
     @end
    

    在上方写定义,在implementation中写实现。
    4.类扩展可以定义在.m文件中,这种扩展方式中定义的变量都是私有的,也可以定义在.h文件中,这样定义的代码就是共有的,类扩展在.m文件中声明私有方法是非常好的方式。

    5.类扩展中添加的新方法,一定要实现。categorygory中没有这种限制。

    【整理自】深入浅出理解分类(category)和类扩展(extension)

    相关文章

      网友评论

          本文标题:(九)分类(category)和类扩展(extension)

          本文链接:https://www.haomeiwen.com/subject/pdyacxtx.html