Autorealse pool中的对象的release

引用计数为0时。
autorelease
实际上只是把对release的调用延迟了,对于每一个Autorelease,系统只是把该Object放入了当前的Autorelease pool中,当该pool被释放时,该pool中的所有Object会被调用Release。对于每一个Runloop系统会隐式创建一个Autorelease pool,这样所有的releasepool会构成一个象CallStack一样的一个栈式结构,在每一个Runloop结束时,当前栈顶的Autoreleasepool会被销毁,这样这个pool里的每个Object(就是autorelease的对象)会被release。那什么是一个Runloop呢?一个UI事件,Timercall delegate call都会是一个新的Runloop。

你可能感兴趣的:(内存,释放,引用计数,release,autorelease)