客观c中的弱引用会被随机释放吗?

时间:2013-03-14 03:03:51

标签: ios objective-c

在下面的例子中,我已经将abc定义为弱引用。

@interface myClass : NSObject
    @property (nonatomic, weak) Line *abc

@end

- (id)init
{
    abc = [[Line alloc] init]
}

abc是否可以随机取消分配,因为没有人强烈指出它?我很难理解如何在客观c等语言中解除分配。由于没有垃圾收集器,究竟是什么从内存中删除它(通过简单地将其设置为nil并调用dealloc?)?

我想象它的工作方式是当myClass设置为nil时,它将在所有引用计数为0的实例变量上调用dealloc。直到myClass设置为nil,abc将始终在内存中。我是对的吗?

1 个答案:

答案 0 :(得分:1)

weak引用是对对象的引用,该对象不会阻止它被释放。

换句话说,它不会创建所有者关系。以前你会这样做:

在ARC中,您使用weak来确保您不拥有它指向的对象。

阅读更多信息here