我有一个项目,我想通过 UINavigationController 在 UITableViewController 之后打开一个 UITableViewController。问题是,当它被这个函数调用时它第一次工作:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
SDMetadataEntity *entity = [self.optionItems objectAtIndex:indexPath.row];
SudzcDetailViewController *detailViewController = [[SudzcDetailViewController alloc] init];
detailViewController.refName = entity.Name;
[self.navigationController pushViewController:detailViewController animated:YES];
[detailViewController release];
[entity release];
}
但是当我按下导航栏上的后退按钮,并再次按下相同的项目时,它崩溃了!当我在第一个 UITableViewController 中按下不同的项目时,它不会崩溃。我真的很想从我做错的事情中吸取教训!
最佳答案
你不应该
[entity release];
因为当你这样做的时候
[self.optionItems objectAtIndex:indexPath.row];
您只是获取指向它的指针,而不是初始化/复制/保留它。
关于iphone - UITableViewController 第二次加载时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7534451/