如果我强行将分配对象的指针指向nil,ARC会做什么?

时间:2012-08-22 09:38:32

标签: objective-c ios cocoa-touch ios5 automatic-ref-counting

我正在分配像

这样的对象
  

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

另一方面,我有力地设置

  

a = nil;

它是否向ARC闪烁消息,现在可以释放该对象?

2 个答案:

答案 0 :(得分:2)

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

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

您可以阅读更多相关信息here

答案 1 :(得分:0)

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