【问题标题】:Arguments for a copy method versus a copy constructor in Objective-CObjective-C 中复制方法与复制构造函数的参数
【发布时间】:2011-11-30 05:45:01
【问题描述】:
我对 Objective-C 的世界还比较陌生,并且我已经编写了一个类,我想在其中添加创建副本的功能。
来自 Java,我知道我可以编写复制构造函数或克隆方法,后者通常是 not being recommended。但是,Objective-C 是一种不同的语言,在继续之前,我想了解一下在 Objective-C 中复制方法与复制构造函数的参数。最常用的方法是什么?
【问题讨论】:
标签:
objective-c
copy
clone
copy-constructor
【解决方案2】:
使用:-(id)copyWithZone:(NSZone*)zone,它是 NSCopying protocol 的一部分
例子:
在.h中:
@interface MyClass : NSObject <NSCopying>
在.m
-(id)copyWithZone:(NSZone*)zone {
MyClass *copy = [[[self class] allocWithZone: zone] init];
copy.user = self.user;
copy.password = self.password;
// etc
return copy;
}