我有这段代码:
CardView *aCardView = [self prendiCartaDalMazzo];
[aCardView removeFromSuperview];
[self.mieCarte addSubview:aCardView];
当我尝试添加aCardView作为mieCarte的子视图时,我收到此错误:
objc [4800]:FREED(id):发送给释放对象的消息superview = 0x393f130 程序收到信号:“EXC_BAD_INSTRUCTION”。
谢谢你可以提供帮助。
答案 0 :(得分:2)
-removeFromSuperview执行一个释放,这可能会导致破坏(superview的引用可能是最后剩下的一个)..
待办事项
[aCardView retain];
[aCardView removeFromSuperview];
...
代替。
答案 1 :(得分:0)
removeFromSuperview
也会释放接收器(就像addSubview:
保留它一样)。
您需要在删除之前保留卡片视图,然后在将其作为子视图添加到另一个视图后再次将其释放。