美文网首页
iOS分类和扩展

iOS分类和扩展

作者: Headless | 来源:发表于2019-06-11 16:12 被阅读0次

    1.1作用:可以在不修改原来类的基础上,为一个类扩展方法。

    1.2最主要的用法:给系统自带的类扩展方法。

    2.1分类中只能添加“方法”,不能增加成员变量。

    2.2分类中可以访问原来类中的成员变量,但是只能访问@protect和@public形式的变量。如果想要访问本类中的私有变量,分类和子类一样,只能通过方法来访问。

    2.3如果一定要在分类中添加成员变量,可以通过getter,setter手段进行添加

    假设我们有一个类,名叫Person,意义是人类。在person类中我们有一个方法,-(void)eat;意义是吃,因为每个人类都会吃。

    人类有很多共同特点,也有很多不同点,比如,并不是每个人都会踢足球。这时候我写一个分类,给喜欢运动的人,这个分类的名字叫做sport。因为是person类的分类,你会看到生成的名字叫做Person+sport。

    3.1在本类和分类有相同的方法时,优先调用分类的方法再调用本类的方法。

    3.2如果有两个分类,他们都实现了相同的方法,如何判断谁先执行?分类执行顺序可以通过targets,Build Phases,Complie Source进行调节,注意执行顺序是从上到下的。(只有两个相同方法名的分类)

    分类(category)和类扩展(extension)的关系

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

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

    3.类扩展听上去很复杂,但其实我们很早就认识他了。你记得继承自UIViewController的ViewController和继承自NSObject的类有什么不同么?

    4.继承自UIViewController的ViewController类

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

    相关文章

      网友评论

          本文标题:iOS分类和扩展

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