协议和分类、

2018-04-23  本文已影响0人  晴天ccc

Demo下载地址、

OC的协议:

协议就是规则,我们定义了一个协议就相当于制定了一个规则。OC中的类可以遵守规则,遵守协议的类就相当于多了一种或几种能力。

协议的定义:

@protocal

    @required 声明必须遵守的属性和方法 (默认)

    @optional  声明可选遵守的属性和方法。

@end

协议的遵守:

@interface XYClass : NSObject <XYProtocal> 

协议在尖括号中。如果遵守多个协议则:

@interface XYClass : NSObject  <XYProtocal,XYProtocal1,XYProtocal2>

创建一个协议:

然后我们编辑协议类,里面的方法有选择实现和必须实现。

我们创建大学生类。UniversityStudent 在h文件中遵守协议,在m文件中实现协议的方法。

最后我们在main函数里面进行调用。

输出结果就是:

OC的分类:

概念:Category  分类是OC特有的语言,依赖于类。分类的作用:分类也是类的一部分。也是类的一个补充和扩展部分。

在不改变原来的类内容的基础上,为类增加一些方法。

如何创建一个分类:

(1)分类只能增加方法(包括类方法和对象方法),不能增加成员变量

(2)在分类方法的实现中可以访问原来类中的成员变量;

(3)分类中可以重新实现原来类中的方法,但是会覆盖掉原来的方法,导致原来的方法无法再使用(警告);

(4)方法调用的优先级:分类->原来的类->父类,若包含有多个分类,则最后参与编译的分类优先;

(5)在很多的情况下,往往是给系统自带的类添加分类,如NSObject和NSString,因为有的时候,系统类可能并不能满足我们的要求。

(6)在大规模的应用中,通常把相应的功能写成一个分类,可以有无限个分类,对原有类进行扩充,一般分模块写,一个模块一个分类。

 

上一篇 下一篇

猜你喜欢

热点阅读