释放后对象可能已被修改
|
我正在研究iPhone上的项目。我现在从另一个UIViewController初始化一个新的UIViewController,然后在它们之间切换。这是我的代码。
iGreenAppDelegate *delegate = [UIApplication sharedApplication].delegate;
if(checkInViewController) {
[checkInViewController release];
checkInViewController = nil;
}
checkInViewController = [[CheckInViewController alloc] initWithCheckpoint:checkpoint];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.8];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:[delegate window] cache:YES];
[[delegate rootTabBarController].view removeFromSuperview];
[[delegate window] addSubview:checkInViewController.view];
[UIView commitAnimations];
问题是我第二次启动UIViewController时,我想释放它以避免引起内存泄漏。调试器显示
iGreen(916,0x3f60348c)malloc:对象0x130350的错误:已释放对象的校验和不正确-对象在释放后可能已被修改。
在malloc_error_break中设置一个断点进行调试
这很奇怪,因为其他部分的类似代码不会返回此类错误。此外,我尝试了自动释放,但是该程序将立即崩溃,并且调试器说我正在修改最终层。
我整夜都在研究这个问题,但仍然对此感到困惑。
没有找到相关结果
已邀请:
4 个回复
目浆搽
嘘伪
街茬
闯舱酮