我在数组中有几个对象。这些对象来自UIImageView子类。

这些对象的类具有几个@synthesize d属性。

在某些时候,我必须在数组中给定位置的不同坐标处创建对象的副本。然后我做:

id objectToDuplicate = [myArray objectAtIndex:x];
id newObject = [objectToDuplicate copy];
CGPoint newCenter = [objectToDuplicate center];
newCenter.x = newCenter.x + 10;
newCenter.y = newCenter.y + 10;
[newObject setCenter:newCenter];
[self.view addSubview:newObject];
[newObject release];


当此代码运行时,什么也不会发生。我的意思是,没有创建具有10像素偏移量的对象,并且我在控制台中看到以下消息:


  ** ... copyWithZone:]:无法识别的选择器已发送至实例... **


对象具有多个元素,例如文本框,标签和具有阴影,辉光等的图像,并且新对象的文本颜色,阴影,辉光,大小,图像等的值必须与原版的。

我以为UIImageView已采用NSCopying协议。如果这是问题所在,我该如何实施?

请不要将我发送给文档,我已阅读它们,这就是为什么我在这里询问。请给我一些实际的例子。

谢谢。

最佳答案

您从哪里了解到UIImageView实现了NSCopying?并非如此,您必须为子类自己做。

关于objective-c - 复制UIImageView子类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6012167/

10-11 06:01