2011-07-20 53 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

相關問題