Objective-C 协议与对象复制及委托机制详解
1. 对象复制基础
要复制一辆汽车,就需要能够复制发动机和轮胎。下面我们逐步介绍如何实现这些对象的复制。
1.1 复制发动机
为了让 Engine 类能够被复制,它需要采用 NSCopying 协议。以下是 Engine 类的新接口:
@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 的子类(如 Slant6 )时,能正确创建子类的实例,避免内存溢出错误。在内存管理方面,
超级会员免费看
订阅专栏 解锁全文
63

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



