首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在CopyWithZone上崩溃:方法

在CopyWithZone上崩溃:方法
EN

Stack Overflow用户
提问于 2014-04-15 06:27:35
回答 1查看 1.2K关注 0票数 0

我创建了一个类,它是NSObject(nsme as GroupClass).In的子类,这个类是我创建的一个属性,它属于'id‘,类似

代码语言:javascript
复制
@property(nonatomic,retain)id myObj;

现在我站在有一个可变数组的地方,这个数组包含了我的GroupClass.so的实例,我以类似的方式得到了一个副本。

代码语言:javascript
复制
GroupClass* objG=[array objectAtIndex:i];

现在我想要另一份objG.I,我搜索了.And,我找到了NSCopying Protocol.So,我把它作为委托NSCopying添加到GroupClass,还添加了copyWithZone method.Here

代码语言:javascript
复制
-(id)copyWithZone:(NSZone *)zone
{
  GroupClass *copy = [[[self class] allocWithZone: zone] init];
  copy.myObj=[myObj copyWithZone: zone];
  return copy;
}

在这里,我需要深入的copy.but,它总是崩溃后,分配,line.Please,帮助您。

EN

回答 1

Stack Overflow用户

发布于 2014-04-15 08:48:31

并非所有的NSObject子类都采用NSCopying协议。这个问题听起来像是你在向一个不认识它的对象发送这个信息。

您的GroupClass采用NSCopying并不重要,这不是问题所在。您正在调用copyWithZone: on myObj,不管这是什么。

这一行代码:

代码语言:javascript
复制
copy.myObj=[myObj copyWithZone: zone];

几乎可以肯定是什么导致了坠机。

编辑

由于不知道myObj是什么,我建议,如果有可能,并且不是坏主意的话,不管类是什么,都可以子类化。

例如,如果它是一个UIView,我会像这样对它进行子类处理:

代码语言:javascript
复制
@class JVView : UIView <NSCopying>

然后,我将适当地实现copyWithZone:方法,复制您认为必要的实例的任何属性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23076097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档