现在的位置: 首页 > 综合 > 正文

内存管理之引用计数

2018年02月03日 ⁄ 综合 ⁄ 共 449字 ⁄ 字号 评论关闭

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谁释放

抱歉!评论已关闭.