如何解决当pushViewController:释放的指针未分配时
我找不到问题!对此的任何帮助将不胜感激: 我正在从UITableView推送一个新视图,该视图包含一个带有UIwebView的视图以访问Internet。单击“后退”按钮时,我得到下一个错误:malloc:*对象0x3d438的错误:未分配要释放的指针。 但是,当我评论最后一行(发布dvController时)时,一切正常!- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[self setCellIdxPathSelected:indexPath];
Nsstring *selectedID = [[theList objectAtIndex:indexPath.row] theWebID];
ExternalWebView *dvController = [[ExternalWebView alloc] initWithNibName:@\"ExternalWebView\" bundle:nil];
dvController.hidesBottomBarWhenPushed= YES;
dvController.theWebID= selectedID;
NSLog(@\"El ID: %@\",selectedID);
[self.navigationController pushViewController:dvController animated:YES];
[dvController release]; // ERROR !!!
}
解决方法
尝试用
autorelease
创建dvController
:
ExternalWebView *dvController = [[[ExternalWebView alloc]
initWithNibName:@\"ExternalWebView\" bundle:nil] autorelease];
然后删除“ 4”语句。
如果您使用“泄漏”工具运行仪器并确认您实际上并未泄漏dvController,则将确认您没有泄漏。
我的直觉是您的控制器被另一个对象释放,而该对象已以某种方式成为其子视图。在另一种情况下,我之前已经看到过这种行为。
当然,如果上述更改也导致崩溃,则存在一个更深层次的问题,我认为我们需要更多有关ExternalWebView
的信息。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。