有某种方法可以测试 Objective-C 实例是否被释放/释放(保留计数 == 0)?
例如,对象 A 有一个指向对象 B 的引用(指针),但对象 B 可以在内存低级别中释放,我如何测试引用 B 以确保它已被释放?
@interface A : NSObject {
B b;
}
@implementation A {
- (void) someAction:(id) sender {
//is b previously dealloced??
if ..... ???? {
b = [[B alloc] init];
}
// continue
}
}
Thanks!!
如果您设置NSZombieEnabled
环境变量,然后释放的对象成为实例NSZombie
。当它们下次收到消息时,它们会抛出,导致您的代码崩溃并烧毁 - 这正是您调试这种情况所需要的。
http://www.cocoadev.com/index.pl?DebuggingAutorelease http://www.cocoadev.com/index.pl?DebuggingAutorelease
Update:对于 XCode 4.0,请参阅如何在 Xcode 中启用 NSZombie? https://stackoverflow.com/questions/5386160/how-to-enable-nszombie-on-xcode-4
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)