2010-03-16 25 views
0

我有這樣的代碼:如何避免「消息上海華盈發送到釋放對象」 iphone

CardView *aCardView = [self prendiCartaDalMazzo]; 

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

當我嘗試aCardView添加爲作爲mieCarte的子視圖,然後我得到這個錯誤:

objc[4800]: FREED(id): message superview sent to freed object=0x393f130 Program received signal: 「EXC_BAD_INSTRUCTION」.

非常感謝您的幫助。

回答

2

-removeFromSuperview都會釋放,這可能會導致破壞(SuperView把的基準可能是剩下的最後一個)..

[aCardView retain]; 
[aCardView removeFromSuperview]; 

...

代替。

+0

這是問題,非常感謝。 – Giovanni 2010-03-16 14:52:02

+0

我認爲有一個指向CardView實例的指針,enalf再次感謝 – Giovanni 2010-03-16 14:53:58

0

removeFromSuperview也釋放接收器(就像addSubview:保留它一樣)。

您需要先保留卡片視圖才能將其刪除,然後在將其作爲子視圖添加到另一個視圖後再次釋放它。

+0

感謝您的清晰answare。 – Giovanni 2010-03-16 15:02:16

相關問題