cocostudio内存释放问题

我使用cocos2d-x-2.2.3和cocostudio-1.4,按照例子做了一个UI界面,但是提示我内存泄露,不知道怎么释放,请大家给与帮助。

在初始化里加载
m_pUILayer = UILayer::create();
this->addChild(m_pUILayer);

Layout* testCocostudioUI = dynamic_cast<Layout*>(GUIReader::shareReader()->widgetFromJsonFile(“TestUi/TestUi.json”));
m_pUILayer->addWidget(testCocostudioUI);

在onExit里释放的
void HelloWorld::onExit()
{
m_pUILayer->removeFromParent();

SceneReader::sharedSceneReader()->purge();
GUIReader::shareReader()->purge();
ActionManager::shareManager()->purge();
DictionaryHelper::shareHelper()->purgeDictionaryHelper();

CCLayer::onExit();
}

这个要顶啊,求官方解决啊 ,,,,

没人回帖啊,能不能给个具体解决方案,多谢

纹理资源没有释放

希望给出具体释放方法,多谢

希望给出具体释放方法,顶啊!!!!

查看API TextureCache

另外请问大大们常说提示内存泄露 不知道是在什么开发环境下利用什么工具实现的呢? 求

有部分是引擎本身的内存,如果是GUI部分,分别释放单例以及texture。

VS下有VLD。Xcode下有leak。

Hi Hanrea,
接着这个问题,当我用GUIReader::shareReader()->widgetFromJsonFile(“TestUi/TestUi.ExportJson”)); 创建出一个ui并加载到一个layer上,这个ui对应的图片会以图片名字为key的方式存储到SpriteFrameCache当中。当我remove这个ui的时候,这些存储在cache当中的这个ui的key是需要手动释放吗?

我现在的做法是在remove这个ui的时候, 同时会调用SpriteFrameCache::getInstance()->removeSpriteFramesFromFile(“ui_TestUi/ui_TestUi0.plist”); 不过在下一次加载这个ui的时候,它就崩溃了。。。坐等解答:6:

貌似找到了问题了,cocostudio在将资源导入cache的时候, 会转换成绝对路径,所以在remove的时候还得填入文件的绝对路径。为毛cocostudio不封装一个接口来清理ui工程载入的资源的方法呢:2:

到底是怎么处理的呢

感谢您的建议,我们会考虑在新的UI系统添加这些功能。