0

我在处理对象时遇到问题

我创建了一个模型类并在我需要的地方使用了对象。当然,出于某种原因,我需要一份它的副本

所以我以以下方式使用

 Modeldata *copyOfDate=[[[Modeldata alloc]init ]autorelease];
 copyOfDate=[g_Data copy];//This Line Gives me a Exception .

我想我需要覆盖复制方法和赋值运算符。

请为我提供解决方案,我正在等待快速响应

4

1 回答 1

3

您需要copyWithZone在模型类实现中覆盖方法,如下所示。

@implementation Modeldata

-(id) copyWithZone: (NSZone *) zone
{
     Modeldata *objModeldata = [[Modeldata allocWithZone:zone] init];
     objModeldata.yourProperty = yourProperty;
     objModeldata.yourProperty1 = yourProperty1; //All your properties
     return objModeldata;
}

@end

现在,如果您执行以下操作将起作用

Modeldata *copyOfDate=[g_Data copy];

你不需要通过写在那里分配内存

Modeldata *copyOfDate=[[[Modeldata alloc]init ]autorelease];
于 2012-05-04T09:46:22.840 回答