Cocostudio UI编辑器生成的面板,png释放不掉

把ui编辑器制作的面板销毁后,已经执行了TouchGroup的析构函数,它所用的png还在缓存里,执行CCTextureCache::removeUnusedTextures()也没用

另外动画编辑器也是这样的问题

你好,请问您是如何检测的呢?纹理通常会延迟释放。

在切换地图的时候,执行CCTextureCache::removeUnusedTextures(),会打印目前缓存里的纹理,以及本次移除掉的纹理,发现之前打开的面板所用的纹理还在缓存里

replaceScene()么?

不是,只是销毁了地图layer,scene没变

我发现要这么干才可以:
CCSpriteFrameCache::sharedSpriteFrameCache()->removeUnusedSpriteFrames();
CCTextureCache::sharedTextureCache()->removeUnusedTextures();

原因是CCSpriteFrameCache持有了Texture的引用计数,只用removeUnusedTextures是无法清除纹理的

但是这样会引起另外一个问题:
使用CCArmatureDataManager管理的动作并不会持有spriteframe的引用计数。但是它仍然缓存了加载的armature
这样在创建armature的时候会直接使用缓存的armature动作,而不会重新加载spriteframe, 导致无法显示动作

我也有这个问题,你解决了吗?

请问这个问题怎么解决?~~~救命啊啊啊啊啊,现在我也是发现有很多UI加载的png没释放的,过了很久也一直存在缓存里,用cc.Director:getInstance():purgeCachedData()可以看到还有那些图片在缓存里没释放

被引用到的图片是purge不了的。
具体被谁引用就看自己了