3

我有一個BaseViewController,它是UITabBarController的子類,並在此視圖控制器中設置我的視圖。釋放視圖控制器是否釋放其所有屬性?

-(void)setUpViews 
{ 
FirstController *mainViewController = [[FirstController alloc] initAssignment:delegate.currentAssignment withMutableArray:myArray]; 
UINavigationController *firstNavController = [[UINavigationController alloc] initWithRootViewController:mainViewController]; 


SecondController *secondViewController = [[SecondController alloc] initWithNibName:@"SecondController" bundle:nil]; 
UINavigationController *secondNavController = [[UINavigationController alloc] initWithRootViewController:secondViewController]; 


self.viewControllers = [NSArray arrayWithObjects:firstNavController, secondNavController,nil]; 

firstNavController.tabBarItem.image = [UIImage imageNamed:@"blablabla.png"]; 
firstNavController.tabBarItem.title = @"Stream"; 


secondViewController.tabBarItem.image = [UIImage imageNamed:@"blabla.png"]; 
secondViewController.tabBarItem.title = @"Favourite"; 
} 

現在我還有一個視圖控制器,我把它稱爲ViewHandlerControllerBaseViewController一個子類。在我的viewDidLoadviewHandler,我調用setUpViews這是在BaseViewController宣佈。在我的應用程序的第一個屏幕中,當按下登錄按鈕時,我實例化我的ViewHandlerController,並通過使用導航控制器成功地呈現了我的tabcontroller。

[[[UIApplication sharedApplication].windows objectAtIndex:0] addSubview:viewControllerHandler.view]; 

在我的應用程序中。有一個註銷按鈕。我正在使用NSNotificationCenter來調用我的第一個屏幕中聲明的logoutMethod。我的問題是,在此註銷方法中,我如何釋放先前分配的對象以避免內存壓力,因爲用戶可以再次登錄(logIn-logOut -logIn)?因爲我使用ARC,將我的ViewController設置爲NIL會做所有的清理工作嗎?

編輯:是從超視圖中刪除我的ViewControllerHandler,並將其設置爲零有助於發佈其子視圖嗎?

乾杯

回答

2

那麼,回答你的問題(不ARC) - 不,基本上視圖控制器釋放時不釋放他的屬性。但是你應該在viewDidUnload和(或)dealloc方法中刪除你的屬性。

如果您使用ARC,您應該注意到某些操作可以保留您的控制器,並且在某些情況下永遠不會被刪除。注意方法,它採取代表對象,他們可能不會使用弱引用

1

看一看這款蘋果article about memory management

你可以只使用在頁頭的方法autoreleasefor (UIView *view in [self.view subviews]) {view release};的dealloc

enter image description here

事實上釋放是相反的操作以保持。如果確實保留,則在分配的內存中增加1個對象實例。發生在您致電alloc, copy, new, mutableCopy時。如果你使用ARC你不能釋放對象,內存管理已經不是你的問題。

+0

感謝您的迴應。在我的情況下,我使用弧,我想減少/避免我的應用程序中的內存壓力。我想要的是緊急釋放對象,因爲我的應用程序消耗大量內存。 – janusbalatbat 2012-03-16 14:41:25

相關問題