1
我有這樣的代碼辭退的UIViewController不釋放內存
-(void)didPressButton:(int)tag
{
// Preventivi?
if (tag == 0)
{
if (addPrev == nil)
addPrev = [[avvAddPreventivoViewController alloc] init];
addPrev.delegate = self;
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:addPrev];
navigationController.navigationBarHidden = NO;
[[navigationController navigationBar] setBarStyle:UIBarStyleBlack];
[self presentViewController:navigationController animated:YES completion:nil];
addPrev = nil;
}
}
當我出現在addPrev
的內存增加,當炫耀的內存沒有釋放。 當addPrev
解僱它時觸發協議方法,didCancel
。我攔截它和釋放addPrev
:
-(void)didCancel
{
[self dismissViewControllerAnimated:YES completion:nil];
addPrev = nil;
}
這意味着一些其他對象具有對視圖控制器的引用。你需要使用儀器來確定參考是什麼。 – rmaddy
addPrev被稱爲只有一次,因爲在我寫的代碼... – giuseppe
你確定你正在使用ARC嗎?如果您關閉了ARC,您顯示的圖形就是典型的代碼。 – Kedar