Cc.textureCache.removeAllTexture() 无法真的从内存中移除材质!(已解决)

cocos2dx 3.10 IOS真机(其实从3.x过来一直有这个问题,并且在曾经的技术支持里报过这个问题,但是一直没有反馈解决过)

每次加载一个场景 ,我都会去调用:cc.textureCache.removeAllTexture()

发现貌似没什么作用,过阵子会报许多类似如下警告:
cocos2d: TextureCache: removing unused texture: /var/containers/Bundle/Application/95F4D51D-F4EA-4AAE-B9C5-8FFF0861AD2B/storyhouse-mobile.app/levels/ebooks/pic/1x/c75efcd000e142ce088cdcef091b4d8e.png
并且跟xcode的memory显示一致。 不断加载场景(包含大量图片),每次加载都执行removeAllTexure() 但是内存一直不见变少。 当呗强制移除后,可以看到memory突然变小。 而那些强制移除的图,我都手动移除过。

后来改成一个个移除,还是没有用。 请问,到底要怎么样才能从内存中移除材质。

跟踪代码可知:
确实调用了:
if( it != _textures.end() ) {
it->second->release(); //确实有执行
_textures.erase(it); //确实有执行
}

但是,这个图片的材质所占内存应该是没有被释放掉。

==========
ps: 看过源代码后找到问题所在了,问题应该是引用计数大于0。 说人话就是 当时该场景还在舞台上,即使移除调用了也没法及时被释放,但是从textures列表里删除了。因此,需要在onExit() 里面执行移除材质的方法就安全了。