Iphone &引用;EXC“不良访问”;我如何解决这个问题?
我想在按钮clck上执行以下操作: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
- (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];}}正如您所说,我已尝试从数组中删除所有对象。但我的列表中没有新数据。它只是从我返回的位置加载。解决方案是什么?