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下"被叫"发布的人?("被调用"可能是错误的单词,因为编译器插入了释放调用,所以我的意思是"编译器插入释放调用的行在哪里?").
如果您需要查看对象使用工具的保留,释放和自动释放的位置:
在仪器中运行,在分配中设置"记录参考计数"(您必须停止记录以设置选项).导致问题代码运行,停止记录,搜索感兴趣的ivar,向下钻取,您将能够看到所有保留,释放和自动释放发生的位置.

| 归档时间: |
|
| 查看次数: |
240 次 |
| 最近记录: |