Objective-C 中的协议与对象复制
1. 复制对象的基础:NSCopying 协议
在复制汽车之前,我们需要先能够复制汽车的各个部件,如发动机和轮胎。为了实现对象的复制,我们需要使用 NSCopying 协议。
1.1 复制发动机
要使 Engine 类能够被复制,它需要采用 NSCopying 协议。以下是 Engine 类的新接口:
@interface Engine : NSObject <NSCopying>
@end // Engine
由于采用了 NSCopying 协议,我们必须实现 copyWithZone: 方法。 zone 是一个 NSZone ,它是一块可以分配内存的区域。当向对象发送 copy 消息时,在到达我们的代码之前,它会被转换为 copyWithZone: 。
以下是 Engine 类的 copyWithZone: 方法的实现:
- (id) copyWithZone: (NSZone *) zone
{
Engine *engineCopy;
超级会员免费看
订阅专栏 解锁全文

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



