0

当我试图从线程更新 UIActivityIndi​​catorView 时。该应用程序通过抛出一个正在完成的异常修改层而崩溃 - 0x7e177fd0 -[CALayer removeAnimationForKey:]: message sent to deallocated instance 0x7e177fd0 。当我尝试从 mallocDebugger 工具中跟踪内存泄漏时。

这种崩溃并非一直发生,十分之一

请帮我解决这个内存问题

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc]init];

[autoRechargeCell addSubview:activityIndicator];
[self.activityIndicator startAnimating];
   if( [PennyTalkAPI getBalanceInfoForAccount:appDelegate.accountNumber withPIN:appDelegate.pinNumber])
{   
    [autoRechargeCell.switchField setOn:[[NSUserDefaults standardUserDefaults] boolForKey:@"AutoRecharge"]];
    [self.activityIndicator stopAnimating];   <<<<<<<<<<<<<<<<<<<<<< 

}
else
{
    [self.activityIndicator stopAnimating];
}

[pool release]; 

这是我写的代码

4

2 回答 2

0

这要么是双重释放错误,要么是悬空指针。您应该在 Scheme 的配置中启用僵尸检测,并尝试在 Instruments 中使用 Zombies 工具。

于 2012-04-13T13:07:12.010 回答
0

在不查看代码并看到错误的情况下,我假设您释放了活动指示器,然后您尝试访问它以进行动画处理。

解决方法:在.h文件中声明UIActivityIndicator对象合成并在-(void)dealloc方法中释放。

于 2012-04-13T13:05:37.783 回答