本文主要是介绍autoRelease内存管理方式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
autoRelease实际是把release的调用延迟了,对于每一个Autorelease,系统只是把该Object放入了当 前的Autorelease pool中,当该pool被释放时,该pool中的所有Object会被调用Release。
Autorelease pool释放条件:1,手动,,2,引用计数不为0,不释放,为0,释放。
其内容为,void CCAutoreleasePool::addObject(CCObject* pObject)
2 {
3 m_pManagedObjectArray->addObject(pObject);
4
5 CCAssert(pObject->m_uReference > 1, "reference count should be greater than 1");
6
7 pObject->release(); // no ref count, in this case autorelease pool added.8 }
有一个变量来引用对象,还有一个引用计数,当引用对象不再用时,就让引用计数减一,以保证对象被及时销毁
这篇关于autoRelease内存管理方式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!