0

我正在分配一个对象

A *a = [[A alloc] init];

在另一点上,我正在强行设置

a = 无;

它是否会向 ARC 发送一条消息,表明现在可以释放该对象?

4

2 回答 2

2

快速回答 - 是的。一旦你将你的对象设置为 nil,它就会被 Arc 杀死(大多数情况下,根据我的经验,你可以信任 ARC)

将为您创建 arc 中的 Dealloc 方法。您不能直接进行 dealloc 调用。但是,如果您需要释放实例变量以外的资源,您仍然可以创建自定义 dealloc 方法。创建自定义 dealloc 方法时,不要调用 [super dealloc] 方法。这将为您完成并由编译器强制执行。

你可以在这里阅读更多关于它的信息

于 2012-08-22T09:52:12.053 回答
0

我认为您指向的原始对象(您使用 alloc/init 创建的空 A 对象)将被释放,但您仍然可以使用“ a ”指针,并使其指向另一个对象。

于 2012-08-22T09:57:02.437 回答