2 pointer23 pointer23 于 2014.09.15 12:02 提问

cocos2dx-cpp中的内存管理问题

请教一下:在GitHub中的cocos2dx-cpp中的cocos2d-x / tests / cpp-tests / Classes / AccelerometerTest / AccelerometerTest.cpp的代码`AccelerometerTestScene::runThisTest()
{
auto layer = new AccelerometerTest();
addChild(layer);
layer->release();//为什么要使用layer->release();

Director::getInstance()->replaceScene(this);
}`
为什么要使用layer->release();

3个回答

duckpc
duckpc   2014.09.15 15:07
已采纳

addChild 相当于 有new 了一个对象到屏幕上面,所以要把刚刚new的 删掉一个。达到之有一个。。

a249435196a
a249435196a   2014.09.15 17:55

addchild() 函数系统默认已经把对象保存,默认一次layer->retain();

c_boy_lu
c_boy_lu   2015.04.14 20:51

retain了两次,所以,要release一次,不然会报内存的!!!

Csdn user default icon
上传中...
上传图片
插入图片