我有一个小小的初学者问题,例如在我的ViewDidLoad方法中,我想分配一个新的类对象,在该新类中执行一些方法然后释放它:
Calibration *cali = [[Calibration alloc] initWithMainViewController:self];
[cali doCalibration];
[cali release];
那为什么这不起作用?!为什么它会给我一个糟糕访问的崩溃?!
顺便说一句:请不要建议我使用ARC。我正在开发一个没有ARC的现有项目编辑:
Stacktrace:[CFRunLoopTimer invalidate]:发送到解除分配的实例0xc2436d0的消息
答案 0 :(得分:0)
当变量被释放时,将发生简短的答案崩溃,如果尝试访问该变量,它将崩溃。因此,为避免这种情况,只需在.h文件中声明实例变量,并在.m文件中使用dealloc方法释放您的实例变量。下面是dealloc方法,在.m文件中声明相同。
-(void)dealloc
{
[cali release];
}