textureForKey: @ "myImageName"]; return nulo

Tengo muchas imágenes grandes, cuando el dispositivo no solo tiene mi aplicación en la memory, mi aplicación hace algo extraño: usé

[[CCTextureCache shanetworkingTextureCache] addImage:@"myImageName"]; 

cargar todas las imágenes Tengo algunos sprites que cambian su textura con:

 [[CCTextureCache shanetworkingTextureCache] textureForKey:@"myImageName"]; 

Al comienzo del juego todo va bien, se muestran todas las imágenes. pero más juego más sprites se vuelven blancos. shanetworkingTextureCache elimina automáticamente los sprites en la advertencia de memory? en RootViewController no he cambiado nada y aparece así:

 - (void)didReceiveMemoryWarning { // Releases the view if it doesn't have a superview. [super didReceiveMemoryWarning]; // Release any cached data, images, etc that aren't in use. } 

¿Por qué no puedo encontrar las texturas?

¿Este es un problema de cocos2d? o la forma correcta de hacer estas cosas es:

 CCTexture2d *tex=[[CCTextureCache shanetworkingTextureCache] textureForKey:@"myImageName"]; if(!tex) [[CCTextureCache shanetworkingTextureCache] addImage:@"myImageName"]; [mysprite setTexture:tex] 

Gracias

Hay un método purgeCachedData en CCDirector.m:

 -(void) purgeCachedData { [CCLabelBMFont purgeCachedData]; [[CCTextureCache shanetworkingTextureCache] removeUnusedTextures]; } 

y en un AppDelegate.m típico creado a partir de la plantilla cocos2d, hay:

 - (void)applicationDidReceiveMemoryWarning:(UIApplication *)application { [[CCDirector shanetworkingDirector] purgeCachedData]; } 

Como resultado, se removeUnusedTextures de CCTextureCache , que elimina todas las texturas en el caching que solo el caching retiene.