iOS开发章节—OC中的类目和延展讲解

本章介绍OC中的类目和延展,费话很少说,直接进入主题。那么什么是类和延展?框架

类目:为已知的类增长新的方法;ide

延展:通知在本类的定义里使用类目来声明私有方法;spa

1、类目:blog

一、类目方法的应用:继承

1)对现有类进行扩展:如:能够扩展Cocoatouch框架中的类,在类目中增长的方法会被子类继承,并且在运行时跟其余的方法没有区别。接口

2)做为子类的替代手段:不须要定义和使用一个子类,能够经过类目直接向已有的类里增长方法。开发

3)对类中的方法归类:利用catigory把一个庞大的类划分为小块来分别进行开发,从而更好地对类中的方法进行更新和维护。get

二、类目方法的局限性:编译器

1)没法向类目中添加it

新的实例变量,类目没有位置来容纳实例变量。若是想增长类的实例变量,只能经过定义子类的方式。

2)如若,在类目中覆盖前后类的方法。这样会引发super消息的断裂,由于类目总的方法具备更高的优先级,所以,通常不要覆盖现有类中的方法。

三、类目的定义:

类目的命名规则:类名+扩展方法,如“NSString+Revert”。类目的接口声明与类的定义十分类似,但类目不继承父类,只须要带有一个括号,代表该类目的主要用途。

四、举例说明:

NSString+Revert.h文件:

151437959.jpg

NSString+Revert.m文件:

151504261.jpg

2、延展:

类的延展可当作是一种匿名的类目,类有时须要一些只有本身看得见的,所用的私有方法能够经过延展的方式来声明,延展中定义的方法在类自己的@implementation代码区域中进行实现。

151558130.jpg

当在定义延展的时候不提供类目名时,延展中定义的方法既被视为“必须实现”的API在这种状况下,若是方法没有实现代码,那么编译器会报警告,这个时候方法的实现就必定要出如今类主体的@implementation代码块中了。

理论结合程序,尽本身最大的努力将程序解释清楚,但愿可以帮助到有须要的同窗,若是有不懂的问题能够相互沟通,相互关注,多了解一些内容。

相关文章
相关标签/搜索