如何避免“消息superview发送到释放对象”iphone

时间:2010-03-16 14:38:51

标签: iphone uiview

我有这段代码:

 CardView *aCardView = [self prendiCartaDalMazzo];

 [aCardView removeFromSuperview]; 
 [self.mieCarte addSubview:aCardView];

当我尝试添加aCardView作为mieCarte的子视图时,我收到此错误:

  

objc [4800]:FREED(id):发送给释放对象的消息superview = 0x393f130   程序收到信号:“EXC_BAD_INSTRUCTION”。

谢谢你可以提供帮助。

2 个答案:

答案 0 :(得分:2)

-removeFromSuperview执行一个释放,这可能会导致破坏(superview的引用可能是最后剩下的一个)..

待办事项

[aCardView retain];
[aCardView removeFromSuperview];

...

代替。

答案 1 :(得分:0)

removeFromSuperview也会释放接收器(就像addSubview:保留它一样)。

您需要在删除之前保留卡片视图,然后在将其作为子视图添加到另一个视图后再次将其释放。