cocos2dx學習筆記之retain()和release()函數簡介

retain的意思就是保持引用,避免被cocos2d-x釋放。與之對應的就是release(). 和c++中的new(),delete()有點類似。
不過在coscos中由於autorelease的存在,問題變得更加複雜。
autorelease
對象調用autorelease,對象就會被cocos2d-x的內存管理機制標記,在遊戲的每一幀,內存管理機制都要掃描被標記的對象,如果引用計數爲零,就將對象銷燬。
如果不想被銷燬,就調用retain函數,當然要注意在析構函數中調用release函數。

什麼時候調用retain

當create()一個對象的時候,在添加到層裏

testSprite = CCSprite::create("helloworld.png");
this->addChild(testSprite);

addchild()會調用retain()函數。
當你把一個對象當成成員變量時,並且沒有把對象addchild到另一對象,就需要調用retain函數。
附上cocos的內存管理文章http://www.cnblogs.com/sniperHW/p/3789837.html

發佈了47 篇原創文章 · 獲贊 6 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章