Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 在iOS 5上的ARC中,你能看到是谁导致了发布吗?_Objective C_Automatic Ref Counting - Fatal编程技术网

Objective c 在iOS 5上的ARC中,你能看到是谁导致了发布吗?

Objective c 在iOS 5上的ARC中,你能看到是谁导致了发布吗?,objective-c,automatic-ref-counting,Objective C,Automatic Ref Counting,在启用了ARC的iOS5项目中,我的一个对象过早释放,因此当我稍后尝试访问它时,我会得到一个空指针。在ARC之前,我会简单地覆盖release,如下所示: -(oneway void)release { NSLog(@"-1"); //breakpoint goes here [super release]; } 然后在NSLog上添加了一个断点,并检查了调用堆栈以查看是谁导致了释放 如何找出谁在ARC下“调用”了释放?(“Called”可能是一个错误的词,因为编译器插入

在启用了ARC的iOS5项目中,我的一个对象过早释放,因此当我稍后尝试访问它时,我会得到一个空指针。在ARC之前,我会简单地覆盖
release
,如下所示:

-(oneway void)release {
    NSLog(@"-1");    //breakpoint goes here
    [super release];
}
然后在NSLog上添加了一个断点,并检查了调用堆栈以查看是谁导致了释放


如何找出谁在ARC下“调用”了释放?(“Called”可能是一个错误的词,因为编译器插入了释放调用,所以我的意思是“编译器插入释放调用的行在哪里?”)。

如果需要查看对象的保留、释放和自动释放发生在何处,请使用以下工具:

在仪器中运行,在分配中设置“记录参考计数”(必须停止记录才能设置选项)。使问题代码运行,停止录制,搜索感兴趣的ivar,向下钻取,您将能够看到所有保留、释放和自动释放发生的位置