簡體   English   中英

試圖了解NavigationController在其堆棧上保留ViewControllers的計數

[英]Trying to understand NavigationController retain count for ViewControllers on its stack

我有一個UITableViewController作為navigatorController的rootViewController。 當我按表格單元格時,請執行以下操作:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath   *)indexPath {
MessageHistory *msg = (MessageHistory *)[[self fetchedResultsController]objectAtIndexPath:indexPath];
ConversationViewController *chatController = [[ConversationViewController alloc]initWithNibName:@"ConversationView" bundle:nil andUser:msg.user];
[self.navigationController pushViewController:chatController animated:YES];
[chatController release];

但是,當我從chatController返回時(使用導航欄上的后退按鈕),我得到“ EXC_BAD_ACCESS”

評論

//[chatController release];

解決了問題。 怎么樣? 我想當推送到navigationController時會添加一個保留計數,而當它彈出時會釋放它嗎?
我也相信,如果在推送到navcontroller之后不包括發行版,我會產生泄漏。
知道這里發生了什么嗎?

我遇到過幾次這個問題,並且幾乎瘋狂地試圖找到錯誤。

就我而言,我在第二個視圖中有一個UIWebView,並將UIViewController設置為其委托。 在我的UIViewController dealloc方法中,我忘記了放置webView.delegate = nil。

當第二個UIViewController彈出並因此被釋放時,UIWebView正在向其委托發送消息(第二個UIViewController不再存在)。

不知道這是否適用於您,但是我花了幾天時間尋找此錯誤,因此也許有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM