深入理解Objective - C中的协议、对象复制与委托模式
1. 对象复制基础
在编程中,若要复制一辆汽车,我们需要能够复制其发动机和轮胎。下面将详细介绍如何实现发动机、轮胎和汽车对象的复制。
1.1 复制发动机
为了使发动机类可复制,它需要采用 NSCopying 协议。以下是发动机类的新接口:
@interface Engine : NSObject <NSCopying>
@end // Engine
由于采用了 NSCopying 协议,必须实现 copyWithZone: 方法:
- (id) copyWithZone: (NSZone *) zone
{
Engine *engineCopy;
engineCopy = [[[self class] allocWithZone: zone] init];
return (engineCopy);
} // copyWithZone
这里使用 [self class] 而不是直接使用 Engine 类,是为了确保在复制 Engine 的子类(如 Slant6 )时,能正确创建子类对象,避免内存溢出错误。
超级会员免费看
订阅专栏 解锁全文
59

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



