GeekBand Objective-C Protocol、Ca

2016-05-22  本文已影响0人  东忙忙西茫茫

1. Protocol 协议,类型的合同约定,只描述外部接口,不提供具体实现。相当于java中的接口。

它包括的成员:

属性
实例方法
类方法
虽然也可以用初始化器、析构器但是不常用。

协议中定义的属性本质上是访问器方法,编译器不会生成实例变量。但是可以通过在实现类的接口头文件中重定义这个属性而生成实例变量。

类遵守协议,实现协议中约定的所有@required(默认)成员,也可用@optional(可选)标识,可实现可不实现的方法成员。协议可作为声明类型使用,但是不可把一个非协议类型的对象赋值给协议类型的变量。通过 conformsToProtocol 检查对象是否实现了协议。一个类可以实现多个协议,一个协议也可以继承多个协议。

2. Catetory 类型

在没有源代码的情况下,向已经封装的类中添加方法。

可以添加:

类方法
实例方法
重写基类的方法

不能添加:

属性
实例变量
已存在的同名方法

命名规范:类名+扩展方法

3. Extension 扩展

有类的源代码的前提下,向类添加功能。在.m文件中的@implementation前声明,实现代码在@implementation内实现。可以理解为私有方法。
可以添加:属性、实例方法、实例变量、类方法、及改写属性的读写属性。供类内访问。

上一篇下一篇

猜你喜欢

热点阅读