2012-04-13 82 views
0

当我试图从线程更新UIActivityIndi​​catorView。该应用程序因抛出异常而崩溃 正在完成的修改层 - 0x7e177fd0 - [CALayer removeAnimationForKey:]:发送到释放实例0x7e177fd0的消息。 当我尝试跟踪mallocDebugger工具的内存泄漏。内存崩溃时,我尝试停止动画UIActivityIndi​​catorView

这种崩溃是不是在所有的时间发生的事情发生了十分之一的

请帮我出这个ROM的内存问题

NSAutoreleasePool *池= [[NSAutoreleasePool的alloc]初始化]

[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]; 

这是代码我已经写

+0

发布您的代码。 – 2012-04-13 13:05:02

+0

请张贴您的部分代码。 – mChopsey 2012-04-13 13:09:30

+0

NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; [autoRechargeCell addSubview:activityIndi​​cator]; [self.activityIndi​​cator startAnimating]; if([PennyTalkAPI getBalanceInfoForAccount:appDelegate.accountNumber withPIN:appDelegate.pinNumber]) {autoRechargeCell.switchField setOn:[[NSUserDefaults standardUserDefaults] boolForKey:@“AutoRecharge”]]; [self.activityIndi​​cator stopAnimating]; } else { [self.activityIndi​​cator stopAnimating]; } [pool release]; – Naren 2012-04-13 13:32:43

回答

0

不看代码,看到的错误,我想你释放你的活动指示灯,然后您试图访问它的动画..

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

+0

为什么要综合它,如果它只用于你的一个类?只需要遵循正确的内存管理程序 – 2012-04-13 13:22:29

+0

@NickBull:是的。感谢提示。没有必要在适当的时间和地点合成。 :-)) – 2012-04-13 13:24:39

+0

我只在dealloc方法中释放它 – Naren 2012-04-13 13:39:44

0

这是一个双重释放错误或一个悬挂指针。您应该在您的Scheme配置中启用僵尸检测,并在Instruments中尝试僵尸工具。

+0

我在尝试通过启用NSZombies和malloc后卫。我还没有发布我的活动指标 – Naren 2012-04-13 13:38:56

相关问题