Cocos2D CCTextureCache остается в памяти
Я загружаю изображения асинхронным способом, для скроллера, используя addImageAsync.
Я начал профилирование и увидел некоторые проблемы с памятью, изображения остались в памяти.
Тогда я решил сравнить addImageAsync и spriteWithFile с загрузкой и прямой выгрузкой изображений. Когда все загрузки завершены, addImageAsync использует больше памяти.
В цикле, который загружает много изображений, если я использую
CCSprite* sprite = [CCSprite spriteWithFile:previewPath];
NSLog(@"sprite created");
[[CCTextureCache sharedTextureCache] removeTexture:sprite.texture];
NSLog(@"texture removed");
sprite = NULL;
NSLog(@"sprite nulled");
Я в конечном итоге с 72,4 МБ
Если я использую:
[[CCTextureCache sharedTextureCache] addImageAsync:previewPath withBlock:^(CCTexture2D *tex) {
[[CCTextureCache sharedTextureCache] removeTexture:tex];
NSLog(@"texture removed");
[CCTextureCache purgeSharedTextureCache];
}];
Я в конечном итоге с 108,7 МБ
Здесь есть проблема, или я делаю что-то не так?
(используя Cocos2d V2)