在iOS 5的ARC中,您能看到谁发布了这个版本吗?

lms*_*lms 4 objective-c automatic-ref-counting

在启用了ARC的iOS 5项目中,我的一个对象过早地被释放,所以当我稍后尝试使用它时,我得到一个空指针.在ARC之前,我会简单地覆盖release这样:

-(oneway void)release {
    NSLog(@"-1");    //breakpoint goes here
    [super release];
}
Run Code Online (Sandbox Code Playgroud)

然后在NSLog上添加了一个断点,并检查了调用堆栈以查看是谁导致了释放.

如何找出ARC下"被叫"发布的人?("被调用"可能是错误的单词,因为编译器插入了释放调用,所以我的意思是"编译器插入释放调用的行在哪里?").

zap*_*aph 8

如果您需要查看对象使用工具的保留,释放和自动释放的位置:

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

在此输入图像描述