美文网首页
IOS学习笔记之类别与扩展

IOS学习笔记之类别与扩展

作者: 语安月月鸟 | 来源:发表于2016-08-24 15:01 被阅读21次

1. 类别

(1)为已有的类添加新的方法

(2)可以在类别中添加新属性,但是不能为类别添加新的实例变量。

(3)缺陷:类别有两个局限

-1. 无法向类中添加实例变量,类别中没有空间容纳实例变量。

-2. 存在名称冲突问题,即类别中的实力方法与现有方法重名,类别具有更高优先级,造成方法覆盖。

(4) 优势:

-1.可以将类的实现代码放到不同的文件或框架中,需要的时候引用特定的文件即可。

-2.可以创建对私有方法的前行引用。

注意:

(1)类别的方法不一定非要在@implementation中实现,也可以在其他位置实现,但是当调用Category的方法时,依据继承树没有找到该方法的实现,程序则会崩溃。

(2) 类别理论上不能添加变量,但是可以使用@dynamic来弥补这种不足。

2.扩展

扩展与类别类似,其实就相当与匿名的类别。

类别和扩展的区别

(1)类别无法向类中添加新的实例变量,extension可以添加属性(变量)。

(2)extension里声明的方法需要在.m中实现,category不强制要求。

(3)当类别中的方法与原始类方法名称冲突时,类别具有更高的优先级。类别方法将完全取代初始方法从而无法再使用初始方法。

相关文章

  • 类别(Category)与类扩展 (Extension)的区别

    类别(Category)与类扩展 (Extension)的区别 iOS 类别和扩展(Categories和Exte...

  • IOS学习笔记之类别与扩展

    1. 类别 (1)为已有的类添加新的方法 (2)可以在类别中添加新属性,但是不能为类别添加新的实例变量。 (3)缺...

  • iOS中类别与扩展

    一、类别 类别就是类的扩展,在不改变类的结构的同时,可以像类中添加方法(不能添加成 员变量) 二...

  • iOS类别、扩展与继承

    类别Category 资料摘自:链接1链接2 类别是一种为现有的类添加新方法的方式。 利用Objective-C的...

  • iOS 类别与扩展 geekband

    类别Categroy 类别支持在没有源代码的情况下,基于某些特定额场合,为一个类增加功能可以添加类方法实例方法重写...

  • iOS 类别(Category)与扩展(Extension)

    类别(Category) 类别能够做到的事情主要是:即使在你不知道一个类的源码情况下,向这个类添加扩展的方法。 ①...

  • iOS 类别和扩展

    分类能够做到的事情主要是:即使在你不知道一个类的源码情况下,向这个类添加扩展的方法。 此外,分类能够保证你的实现类...

  • iOS类别、继承、扩展

    iOS类别(也叫分类):一般扩展本类的方法,可以添加属性,不能自动生成setter、getter方法;使用的是动态...

  • iOS类别(Category)与扩展(Class Extensi

    1.类别(Category) 作用: 通过分类给某一个类扩充方法, 便于在企业级开发中多人同时维护同一个类,避免冲...

  • uiscrollview

    IOS学习笔记——iOS组件之UIScrollView详解图解UIScrollView的contentOffset...

网友评论

      本文标题:IOS学习笔记之类别与扩展

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