我创建了一个类,它是NSObject(nsme as GroupClass).In的子类,这个类是我创建的一个属性,它属于'id‘,类似
@property(nonatomic,retain)id myObj;现在我站在有一个可变数组的地方,这个数组包含了我的GroupClass.so的实例,我以类似的方式得到了一个副本。
GroupClass* objG=[array objectAtIndex:i];现在我想要另一份objG.I,我搜索了.And,我找到了NSCopying Protocol.So,我把它作为委托NSCopying添加到GroupClass,还添加了copyWithZone method.Here
-(id)copyWithZone:(NSZone *)zone
{
GroupClass *copy = [[[self class] allocWithZone: zone] init];
copy.myObj=[myObj copyWithZone: zone];
return copy;
}在这里,我需要深入的copy.but,它总是崩溃后,分配,line.Please,帮助您。
发布于 2014-04-15 08:48:31
并非所有的NSObject子类都采用NSCopying协议。这个问题听起来像是你在向一个不认识它的对象发送这个信息。
您的GroupClass采用NSCopying并不重要,这不是问题所在。您正在调用copyWithZone: on myObj,不管这是什么。
这一行代码:
copy.myObj=[myObj copyWithZone: zone];几乎可以肯定是什么导致了坠机。
编辑
由于不知道myObj是什么,我建议,如果有可能,并且不是坏主意的话,不管类是什么,都可以子类化。
例如,如果它是一个UIView,我会像这样对它进行子类处理:
@class JVView : UIView <NSCopying>然后,我将适当地实现copyWithZone:方法,复制您认为必要的实例的任何属性。
https://stackoverflow.com/questions/23076097
复制相似问题