如果需要保持一个对象不被销毁,可以使用retain,在使用完对象后需要使用release进行释放;
使用release进行释放对象时,对象并不一定立刻被销毁,只有引用计数变为0时才有系统调用dealloc进行释放;
自动释放池结束时会向对发送autorelease的所有的对象发送release消息,如果池中某个对象引用计数变为0,则系统调用dealloc销毁该对象。
自动释放池结束时对池中对象发送release消息也不一定能够销毁所有的对象,因为某个对象引用计数可能还不为0;
当程序终止时所有的对象都被销毁;
对使用alloc retain copy方法的任何对象,以及具有retain和copy的属性的对象释放时,需要dealloc方法使得在对象释放的时候能够释放实例变量 |
|