Objective-C 编程:协议、复合对象与预处理器详解
1. 协议相关内容
1.1 协议基础
在编程中,通过类别为现有类添加新方法虽能满足需求,但可能与类的原始设计不符。例如,通过添加新类别和方法将正方形变成圆形,会模糊类的定义,并非良好的编程实践。同时,对象/类别命名对必须唯一,在 Objective - C 命名空间中,一个特定的类别只能存在一个实例。
协议是类之间共享的方法列表,其中列出的方法没有对应的实现,需由其他类来实现。若决定实现某个协议的所有必需方法,就称该类遵循或采用了这个协议。定义协议很简单,使用 @protocol 指令后接协议名称,然后像在接口部分一样声明方法,直到 @end 指令,这些方法声明就成为协议的一部分。
1.2 协议示例
以 NSCopying 协议为例,其在标准 Foundation 头文件 NSObject.h 中定义如下:
@protocol NSCopying
- (id)copyWithZone: (NSZone *)zone;
@end
若类采用 NSCopying 协议,必须实现 copyWithZone: 方法。在 @interface 行的尖括号 <...> 内列出协议名称,告知编译器该类采用了此协议,如:
超级会员免费看
订阅专栏 解锁全文
14

被折叠的 条评论
为什么被折叠?



