2011-05-14 30 views
0

我有一堆類保留場景的一個實例,我開始認爲這會導致我的內存管理問題。是我的場景永遠留在記憶中

所以我有Scene1,Scene2和一個HelperClass,它具有保留場景的屬性。

當我從Scene1切換到Scene2時,我希望處理所有的東西。

我開始思考,但是在我叫導演改變場景之前,我將不得不手動釋放助手類嗎?

該輔助類由該場景的子層保留。

該圖層還具有作爲ccnode的場景的屬性引用。

我這樣做不對嗎?安排這些東西的最佳方式是什麼,以便內存正確釋放。

幫助程序類可以執行諸如創建項目符號並將它們添加到場景中。

我有一個類似的設置與CCSprites只存在於現場級別。我在助手類中保留對它們的引用。

+0

我的一個早期想法是,所有這些幫助者類應該是CCNodes,我不應該保留屬性引用任何從cocos2d我應該將ccnode添加到父類 – Mel 2011-05-14 17:40:52

回答

1

一旦你添加了一些東西到一個容器,一個場景或spritesheet或其他東西,釋放它,容器保持一個引用它,然後當你處理容器時,它將被釋放。 僅當您運行新場景或調用CCDirector的replaceScene方法時,纔會釋放場景。

+0

我做了父母和孩子之間的保留循環。答案不是保留父對象屬性,而是做一個賦值。 – Mel 2011-05-18 02:38:31