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 )时,能正确创建子类的实例,避免内存溢出错误。
超级会员免费看
订阅专栏 解锁全文
15

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



