2011-07-20 138 views
0

我不知道这里发生了什么问题。在视图之间来回切换时发生崩溃。EXC_BAD_ACCESS和僵尸,但不知道为什么它不断出现

这里是仪器给我: Crash in instruments

点击到它引用该代码与第一动作:

-(IBAction)pushnews; { 
NewsViewController *news = [[[NewsViewController alloc]init]autorelease]; 
news.title [email protected]"Page"; 
[self.navigationController pushViewController:news animated:YES]; } 

我有时用自动释放,但通常我只是释放我自己。我应该摆脱autorelease并添加[news retain]

我做错了什么?基于答案


编辑: 继EmptyStack的建议是:ViewWillDisappear代码如下所示:

- (void)viewWillDisappear:(BOOL)animated { 
webView.delegate = nil; } 

这似乎解决我所说的问题(待更多的测试)

在viewDidLoad中:web视图.delegate = self;这可能是问题!

+1

纠正我,如果我错了,但仪器参考' - [HomeViewController pushnews]',但你已经呈现'viewController'。请张贴'pushnews'的部分内容。 – DarkDust

+0

*在* NewsViewController *中有* UIWebView *? – EmptyStack

+0

DarkDust,我改了名字。我向你展示相关部分,对此感到遗憾。我会编辑回来和是。我在NewsViewController中有一个Web视图 – Sum

回答

2

我的猜测是,有一个的UIWebViewNewsViewController,并导致飞机失事的原因。可能的是,在Web视图发布后调用Web视图的委托方法。如果是,请尝试在中设置webView.delegate = nil; NewsViewController的viewWillDisappear:方法。

+0

我会尽力谢谢。 – Sum

+0

这个bug需要一点努力来重现,但我还没有碰到它。这也解释了为什么我要在Instruments中获得WebView。 – Sum

+0

这看起来不错:)我会让你们知道更多,一旦我已经跨越了意见 – Sum

0

试试这个:

-(IBAction)viewcontroller; 
{ 
    NewsViewController *news = [[NewsViewController alloc]init]; 
    news.title [email protected]"Page"; 
    [self.navigationController pushViewController:news animated:YES]; 
    [news release]; 
} 
+0

谢谢,但我也这么做了,它出现了相同的错误 – Sum

+0

事实上,这是我所做的错误。仅仅因为仪器说这里有错误,并不意味着ViewController中没有一些额外的东西。所以如果你遇到过同样的情况,也请看视图控制器! – Sum

相关问题