How to use textureForKey ? ( Bug ? )

A question about textureForKey.
Question code :

CCImage img = new CCImage;
tex = CCTextureCache::sharedTextureCache()->addUIImage( img, “catImage” );

if( CCTextureCache::sharedTextureCache()->textureForKey( “catImage” ) )
> > // find
> > // oh…no

> > // it run here

textureForKey don’t find “catImage”.
maybe I use way is wrong ?

Thank you.

Thanks for your feedback!
Yes, it’s a bug of engine! Issue #750 created for it.

The reason of this bug had been discussed in this topic:

And we only can fix this bug by modify the key with method CCFileUtil::fullPathFromRelativePath_ whenCCTextureCache::addUIImage()_ invoked.

Best wishes!

Woods Lin, you can add CCFileUtil::fullPathFromRelativePath() in CCTextureCache::addUIImage(), and do a test.
Share the result is better.

thanks for help me.

And test is ok, I can get the CCTexture2D object.
but the way isn’t my think result.

because I own one file call “”,then it own many images in the data.

so I do:

// save the memory
loadImageFile( “” );
// get image from 0 index
BYTE rawData = getImageFromIndex;
img->initWithImageData( rawData, width*height, CCImage::kFmtRawData, width, height );
CCTexture2D* tex = CCTextureCache::sharedTextureCache()>addUIImage;
// get image from 1 index
BYTE rawData2 = getImageFromIndex;
>initWithImageData( rawData2, width*height, CCImage::kFmtRawData, width, height );
CCTexture2D* tex = CCTextureCache::sharedTextureCache()->addUIImage( img2, “imageName_2” );

but now “imageName_1” and “imageName_2” can’t so use, i must name it call “”.
because these images separated to memory address, then they don’t have separated to many files in the hard disc.

May give me some suggestions?