“EXC_BAD_ACCESS”如何解决此问题?

时间:2011-04-27 13:18:56

标签: iphone objective-c ios ios4

我想在按钮clck上执行以下操作:

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
     if (buttonIndex == 0)
     {
         if (QuestionMutableArray==nil) {
            [self testIterator];
         } 
         else
         {
             [myMutableArray release];
             [myDictionary release]; 
             [self dismissModalViewControllerAnimated:YES];

             //[self release];
         }
     }
}

用这段代码回到parentView控制器后...当我再次来到这个tableView时我想用新的NSMutableArray重新加载我的tableView。我可以用dismissModalViewController清空我的集合(NSMutableArray或字典)吗? p>

4 个答案:

答案 0 :(得分:1)

使用removeAllObjects方法。

答案 1 :(得分:1)

当您尝试访问已释放的内存时,会出现EXC_BAD_ACCESS错误。也许您在发布数组或字典后尝试访问它们。而是从数组或字典中删除对象。

答案 2 :(得分:0)

EXC_BAD_ACCESS通常有两个原因:

  • 字符串不以“@”符号和
  • 开头
  • 内存管理不善。

在你的情况下,我假设你发布了数组和字典,但你没有正确初始化。确保在每次使用之前对它们进行了适当的初始化,并保持保留状态直到完成它们为止。它也可能是由于在界面构建器上播放引起的:我记得多次连接IBOutlet并确定名称没有任何意义并重命名该属性。在每个连接之后,xcode会自动在dealloc方法中放置一个release语句,如果你在一个属性被释放两次的情况下,你可能还想在那个视图控制器上使用IB来检查它。

答案 3 :(得分:0)

不要释放它使对象成为nil