已经学习了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
相关推荐
Objective-C——消息、Category和Protocol
3. Objective-C中的布尔类型 4. Objective-C中的null 5. 与C混合编写 6. 对象的初始化 7. Objective-C的description方法 8. Objective-C的异常处理 9. id类型 10. 类的继承 11. 动态判定与选择器 12. 类别Category ...
技术关键词:Objective-C、iOS开发、Mac OS X、编程语言、面向对象编程、内存管理、自动引用计数(ARC)、协议(protocol)、类扩展(category)、键值观察(KVO)、键值编码(KVC)、Block、Delegate模式、多态性、...
获取Objective-C头文件并将其转换为等效的javascript调用 安装 $ npm install objective-c-parser 用法 const fs = require ( "fs" ) ; const objectiveCParser = require ( "objective-c-parser" ) ; const ...
Protocol extension for Objective-C
基础语法:熟悉C语言基础是前提,Objective-C是在C语言的基础上增加了面向对象特性。 面向对象:理解类(Class)、对象(Object)、实例变量(Instance Variables)、方法(Methods)、继承(Inheritance)、封装...
OBJECTIVE-C编程之道 IOS设计模式解析电子书+源代码《Objective-C编程之道:iOS设计模式解析》是基于iOS的软件开发指南。书中应用GoF的经典设计模式,介绍了如何在代码中应用创建型模式、结构型模式和行为模式,...
An Objective-C Class for Working with Fractions 30 The @interface Section 33 Choosing Names 34 Class and Instance Methods 35 The @implementation Section 37 The program Section 39 Accessing Instance ...
详解 objective-c中interface与protocol的作用 以前对Objective-C中的interface,即头文件的作用一直不太清楚。最近看了一些文章,再加上自己的试验,对头文件的作用稍有了解。 在我看来,头文件的作用是,定义对外...
本套PPT,拥有以下OC语言的内容: 一、OC的三大特性(封装、继承、多态) 二、OC的特有语法(点语法、@property、@synthesize关键字、id、构造方法、分类、...四、协议(protocol)代码块(block) 五、ARC 等等
该库取决于 ,后者为libsignal-protocol-c提供了Xcode友好的打包方式。 该软件不隶属于Open Whisper Systems,也不被Open Whisper Systems认可。密码学注意事项此发行版包括加密软件。 您当前居住的国家/地区可能对...
protobuf-rpc是一个基于的远程方法调用(RPC))实现,服务器端当前仅支持Java(JDK 1.7及以上),客户端支持Objective-C(cocoa/iOS)和Java(J2SE/Android)。 Why protobuf-rpc? 对于纯的基于Windows或者Linux的服务器来...
Category是ObjC语言中的扩展机制之一,另一个为Protocol。 Category提供一种为某个类添加方法而又不必编写子类的途径。 假设有这样一个类CarInfo: #import @interface CarInfo : NSObject { } -(void)sayCarBrand;...
GenericModel 支持Objective-C Model、NSDictionary、JSON之间互相转换,框架非常简单高效,内部对反射过的model设置有缓存,用Objective-C中的Protocol限定NSArray,NSDictionary等容器类的类型,防止容器类型变量...
面向对象语法 OC特有语法 内存管理 Category Protocol block ARC
### Objective-C框架,用于与CUPS进行交互。 OCPrinter对象符合NSSecureCoding的要求,可与NSXPC服务和特权帮助程序工具一起使用,以便非管理员用户可以自己管理打印机。 ####添加/删除OCPrinter NSError *error...
方便的 Objective-C '扩展' 该库包括扩展以增强语言并避免需要通用样板代码。 它重量轻,可以完全无风险地安装在项目中。 扩展摘要 @implementation_combine 就像一个普通的类别实现,有一个关键区别:任何已经在...
HTTPKit HTTPKit是一个非常简单的轻量级基于块的异步Objective-C库,用于发出HTTP请求。 非常适合使用RESTful API。将HTTPKit添加到您的项目下载或将存储库作为git子模块添加到git跟踪的项目中。 在Xcode中打开您的...
抽象类如何使用objective-c创建抽象类的示例。 您会注意到这不是其他语言中定义的真正抽象类。 例如,如果您真的愿意,您可以在基类上调用[[ alloc] init] 。 这旨在为抽象类型可以派上用场的情况提供抽象类的简单...