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 }
有一个变量来引用对象,还有一个引用计数,当引用对象不再用时,就让引用计数减一,以保证对象被及时销毁