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)

0 ответов

Другие вопросы по тегам