当先锋百科网

首页 1 2 3 4 5 6 7

已经学习了Objective-C类的基本元素和结构,但是该语言还提供了许多额外的特性用于开发类。本节说的就是protocols。

 

一个protocol声明了可以让其他任何类实现的方法和属性。

 

一个类接口是和一个特定的类相关联的,这就形成了一个类层次结构。

 

而,protocol并不与任何特定类关联,所以它可以被用来捕捉一些并没有层次关系的类里的相似点。

 

protocol为Objective-C提供了规范的多继承(也就是,方法声明)的能力。

 

protocol还可以用来定义一个对象可以发的消息。(通过指定遵循一个协议的属性)

 

1、语法

如果@required和@optional都没写,默认就是@required

Listing 2-12.  Protocol Declaration Syntax

@protocol ProtocolName

// Property declarations

@required

// Method declarations

@optional

// Method declarations

@end

 

-----------------------------------------------------

protocol中还可以引入其他protocols。

Listing 2-13.  Incorporating Other Protocols

@protocol ProtocolName <ProtocolName(s)>

// Method declarations

@end

---------------------------------------------------------------------

接口中引入protocols

Listing 2-14.  Interface Adopting a Protocol

@interface ClassName : Parent <ProtocolName(s)>

// Method declarations

@end