autorelease使用注意
1. 只有在自动释放池中调用了对象的autorelease方法,这个对象才会被存储到这个自动释放池中.
2. 对象创建可以在自动释放池的外面,在自动释放池内调用autorelease就能吧对象加入自动释放池
3. 自动释放池结束的时候,仅仅对存储在自动释放池中的对象发送1条release,而不是销毁对象
4. 如果在自动释放池内调用同一个对象autorelease方法多次,就会将这个对象多次存储到这个自动释放池中,在自动释放池结束的时候,会为对象发送多条release效益,这个时候就会出现僵尸对象错误.
5. 如果在自动释放池中调用了存储在自动释放池中对象的release方法,在自动释放池结束的时候,还会再调用对象的release方法,这个时候就会有可能会造成野指针操作
6. 将帝乡存储在自动释放池,并不会使对象的引用计数器+1,,创建对象将对象存储在自动释放池,就不需要调用对象的release方法了
7. 自动释放池可以嵌套,调用对象的autorelease方法,会将对象加入到当前自动释放池中,只有在当前自动释放池结束的时候才会向对象发送release消息
|
|