Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone &引用;EXC“不良访问”;我如何解决这个问题?_Iphone_Objective C_Ios_Ios4 - Fatal编程技术网

Iphone &引用;EXC“不良访问”;我如何解决这个问题?

Iphone &引用;EXC“不良访问”;我如何解决这个问题?,iphone,objective-c,ios,ios4,Iphone,Objective C,Ios,Ios4,我想在按钮clck上执行以下操作: - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { if (buttonIndex == 0) { if (QuestionMutableArray==nil) { [self testIterator]; } else

我想在按钮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。如何清空我的集合(NSMutableArray或dictionary)使用dismissModalViewController?

使用
removeAllObjects
方法。

当您尝试访问已释放的内存时,会出现EXC\u BAD\u访问错误。可能您正在尝试在发布数组或字典后访问它们。相反,从数组或字典中删除对象。

EXC\u BAD\u访问通常有两个原因:

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

在您的情况下,我假设您释放了数组和字典,但没有正确初始化。确保在每次使用之前正确初始化它们,并在使用完它们之前一直保留它们。这也可能是由于在interface builder上玩游戏造成的:我记得有几次连接了一个IBOutlet,并认为名称没有任何意义,于是重命名了该属性。在每个连接xcode自动将一个release语句放入dealloc方法后,如果某个属性已被释放两次,您可能还需要在该视图控制器上检查是否使用了IB。

不要释放它,使对象变为
nil

-(void)alertView:(UIAlertView*)alertView ClickedButtonIndex:(NSInteger)buttonIndex{if(buttonIndex==0){[self dismissModalViewControllerAnimated:YES];[QuestionMutableArray removeAllObjects];XmlManufactorObject=[[XmlManufactorAlloc]init];QuestionMutableArray=[[XmlManufactorObject ReadXml]retain];[self.tableView release];}}正如您所说,我已尝试从数组中删除所有对象。但我的列表中没有新数据。它只是从我返回的位置加载。解决方案是什么?