各位神仙,小弟在使用cocos2d的时候遇到了内存泄露的问题,请指点一下。
我开了一个线程来创建一堆CCImage,大致代码如下:
CCImage* pImage = new CCImage();
pImage->initWithImageFileThreadSafe(strFile.c_str());
创建出的CCImage会保存在一个stl 的 vector里面(比如名字为vecImage)
在所有的Image加载完成后,我会在主线程里面,将CCImage转换为纹理,大致代码如下:
CCTextureCache::sharedTextureCache()->addUIImage(pImage, strKey.c_str());
所有的Texture存在一个vector里面(比如名字为vecTexture)
在将所有的CCImage转换为Texture后,我就释放CCImage,代码如下:
for(int i = 0; i < vecImage.size(); i++)
{
if(vecImage*)
{
vecImage*->release();
}
}
这里就产生了泄露,这些CCImage都没有被释放掉!!!
后面我释放纹理使用的方法是:
for(int i = 0; i < vecTexture.size(); i++)
{
CCTextureCache::sharedTextureCache()->removeTexture(vecTexture*);
}
纹理的内存是被释放掉了。
就是不知道为什么CCImage的内存没释放掉。是代码写得有问题?还是别的原因??
求指点!!!!