内存警告--applicationDidReceiveMemoryWarning

- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application {

    /*

     Free up as much memory as possible by purging cached data objects that can be recreated (or reloaded from disk) later.

     */

     cocos2d::CCDirector::sharedDirector()->purgeCachedData();

}

当内存不够时,上述函数会被调用。

void CCDirector::purgeCachedData(void)

{

    CCLabelBMFont::purgeCachedData();

CCTextureCache::sharedTextureCache()->removeUnusedTextures();

}

继续追踪,removeUnusedTextures():

void CCTextureCache::removeUnusedTextures()

{

std::vector<std::string> keys = m_pTextures->allKeys();

std::vector<std::string>::iterator it;

for (it = keys.begin(); it != keys.end(); ++it)

{

CCTexture2D *value = m_pTextures->objectForKey(*it);

if (value->retainCount() == 1)

{

CCLOG("cocos2d: CCTextureCache: removing unused texture: %s", (*it).c_str());

m_pTextures->removeObjectForKey(*it);

}

}

}

会将引用计数为1的texture释放。引用计数时ios对内存管理的方式之一。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值