我有一個AViewController,如果我創建BViewController像這樣推視圖控制器是一個實例變量,dealloc方法不會被調用時彈出它
@interface AViewController()
{
BViewController *bVC;
}
@end
一個實例變量,然後推
- (void)push {
bVC = [[BViewController alloc] init];
[self.navigationController pushViewController:bVC animated:YES];
}
當BViewController彈出時,不會調用Dealloc方法。
兩個viewcontrollers幾乎都是空的,我的意思是沒有NSTimers,塊或網絡請求。 我想在AViewController中存在一個強大的參考週期,但無法弄清楚週期。
那麼,有誰能幫我解決這個問題,謝謝!
所以,問題,寧,你是如何測試dealloc,你是否NSLog檢查它是否沒有被調用,我只是想知道,因爲它似乎很奇怪,它不會被調用。 – Loxx
寧,我剛剛在我的一個應用程序上嘗試了這一點,這個應用程序接近於製作,並且POP視圖控制器沒有調用dealloc,之前我從未關注過這個問題,但這有點奇怪。我也將它更改爲像您一樣的IVAR,並且我也得到了相同的行爲。 – Loxx
視圖控制器沒有被釋放,因爲仍然有對它的引用。只要'bVC'具有很強的參考性,就不能解除分配。 – rmaddy