IOS中手动管理内存方式是通过引用计数来实现内存的管理当对象调用allco方法,引用计数置为一,以后每一次retain,引用计数加一,
对应的,release方法,会将对象的引用计数减一,当对象的引用计数为0时,系统将回收对象的内存。
其中值得注意的是调用add方法时也会retain,所以经常可以看到以下代码:
UIView *view = [[UIView alloc]init]; [self addSubview:view]; [view release]; [view removeFromSuperview];
这里最后一行执行release,系统并不会将view回收,应为除alloc是引用计数置为一,addsubview时view的引用计数又加了一,此时view的引用计数为二
当releaes执行后,view的引用计数减一,为一,执行removeFromSuperview之后,计数减一,这个时候view计数为零,系统调用delloc方法回收内存。
归根结底要记住一条黄金法则:谁创建谁释放,谁retain谁释放