0

在下面的示例中,我将 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 将始终在内存中。我对么?

4

1 回答 1

1

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

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

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

在此处阅读更多信息

于 2013-03-14T03:30:26.273 回答