我有太多次釋放視圖的問題。雖然理論上很簡單,因爲我將uiview移動到uiview,uiview是uiview的一個子類,並且具有動畫效果等等,但這不是我可以輕易修復的。它只在一定條件下崩潰10%,即使在這些條件下也只有30%時間崩潰。由於保留計數而釋放對象
換句話說,它有點複雜。有時在我的dealloc方法中,這個UIView的保留計數已經是1(當視圖被釋放時它會被釋放),所以不應該再次被釋放。因此,我所做的是:
if ([mainView retainCount] > 1) {
NSLog(@"released");
[mainView release];
}
洽與釋放通常被稱爲崩潰,但並不總是和它發生相當多的時候我有時會想到它崩潰。我已經檢查了這個代碼的泄漏,並且它永遠不會泄漏。
現在的實際問題......由於其保留數量而釋放某些內容是否是錯誤的?我嘗試了很多不同的方法來解決這個問題,到目前爲止,這是唯一可靠且無泄漏的方法。
編輯:如果沒有那麼有什麼更好的方法來複制一個UIView到另一個UIView?
mainView = newView;
[newView release];
我試着釋放mainView,然後調用newView上的副本,但這崩潰。除了保留計數有時候比預期的低1,即使它從來沒有在代碼中任何其他地方釋放,以上也是完美的。
更新的問題 – Rudiger 2010-10-12 07:16:21
您需要展示更多代碼,並告訴我們您真正想要做什麼。複製視圖有點模糊。 – Eiko 2010-10-12 07:20:11
沒有什麼更多。有兩個複雜的UIViews,如果我需要創建一個新的複雜視圖,我創建一個本地UIView,創建UIView的內容,在它們之間生成動畫getView = newView然後釋放newView。 – Rudiger 2010-10-12 07:22:58