我總是推新視圖控制器到堆棧是這樣的:爲什麼釋放視圖控制器會導致崩潰?
MyViewController *vc = [[MyViewController alloc] init];
[self.navigationController pushViewController:vc animated:YES];
[vc release];
而一切運作良好,當談到一起彈出它關閉堆棧:
[self.navigationController popViewControllerAnimated:NO];
但現在當我求婚vc關閉堆棧我在main.m中發生崩潰,提示線路訪問不良:int retVal = UIApplicationMain(argc, argv, nil, nil);
但是現在如果我註釋掉[vc release]沒有更多的崩潰?
但是爲什麼肯定會泄漏內存,因爲我沒有發佈我創建的東西?
您是否嘗試在調試模式下運行它?找出它崩潰的確切路線。也許這與發佈無關,因爲您發佈的代碼似乎是正確的 – Sid 2011-06-03 18:17:07
從控制檯發佈詳細消息,如果您不介意,MyViewController的代碼可能會有所幫助。 – Sid 2011-06-03 18:20:24
請發佈回溯。事故並不在這條線上;它在彙編器的某一行大約有20個棧幀。你發佈的代碼很好,所以你在其他地方做了一些錯誤的事情,這些事情對視圖控制器的引用計數或其減量的一個對象做了一些不合適的事情,很可能是在'-dealloc'或'-viewDidUnload'期間遞減的一個對象。回溯應該告訴你究竟是什麼樣的對象,你做錯了什麼。 – 2011-06-03 18:24:25