Lor*_*olo 2 exc-bad-access objective-c ios
有一段时间我很难找到解决方案,我搜索了谷歌,stackoverflow但无法解决这个问题.
我有2个视图控制器(我们称之为VC1和VC2),我可以在它们之间进行切换,没有任何问题.为了呈现VC2,我使用:
UIStoryboard* storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UINavigationController* ctrl = [storyboard instantiateViewControllerWithIdentifier:@"histListID"];
[self presentViewController:ctrl animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)
要回到VC1,我使用:
- (IBAction)backPressed:(id)sender {
[self dismissViewControllerAnimated:YES completion:nil];
}
Run Code Online (Sandbox Code Playgroud)
VC2包含一个表视图,在我删除一些单元格后,如果我尝试返回VC1,我得到EXC_BAD_ACCESS(代码= 1).我以前从来没有处理过这个问题,我知道它可能与我代码中的某些地方有关.但我真的不知道如何解释它.它与我的tableView有关吗?在解雇控制器时我做错了什么?

如果您需要更多代码,请询问,我真的需要解决它.
PS:我打开了ARC.
编辑:用于删除单元格的代码
[self deleteItemAt:chosenItem];
[tableView reloadData];
Run Code Online (Sandbox Code Playgroud)
基本上deleteItemAt所做的是从数组中删除一些对象:
- (void)deleteItemAt:(int)index
{
[self.histModel deleteFileAtIndex:index];
if ([self isWeekSelected]) {
[self updateWeekDic];
}else{
[self updateMonthDic];
}
[callout dismissAnimated:YES];
}
Run Code Online (Sandbox Code Playgroud)
很抱歉,如果它没有正确执行我没有编写代码的那部分,但我不认为它与删除单元格有关.
每当您解除viewController时,请确保将所有委托设置为nil.堆栈跟踪显示正在释放的大量对象,然后是tableview委托回调.我怀疑这是因为它试图调用[delegate canEditCellAtRowindex]但是viewController已被解雇并且不再在堆栈中.
例如
[tableView setDelegate:nil];
[tableView setDataSource:nil];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1130 次 |
| 最近记录: |