我在蘋果網站上搜索了這個,並且似乎只能使用故事板或導航控制器來查找文檔,這兩者都不是我正在使用的。這是一個關於內存管理的令人難以置信的簡單問題。正在發佈主視圖控制器(iOS)
我創建了一個完全空白的應用程序。在我的AppDelegate的didFinishLaunchingWithOptions函數中,我創建了一個View Controller的實例。我的設計(本身可能是一個問題)是在視圖控制器和視圖之間有1:1的關係。
因此,我的應用程序的主菜單,它是一切的啓動板在MenuViewController.h/m。
在.H:
MenuViewController *m;
在.M:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
m = (MenuViewController *)[[MenuViewController alloc] init];
m.window = self.window;
[m doStuff]; // handful of functions, not actually called this
//[m release]; // doesn't make sense to me
return YES;
}
這是我很困惑。我希望這存在基本上整個應用程序生命週期。但我也有這樣的印象:你應該(在當前函數的範圍內)發佈你分配的任何東西。如果你需要的話,你應該先在別處保留它。這是不是真的?
我的根本問題是......我應該在哪裏發佈這個視圖控制器?還有什麼我說過的,看起來不合時宜?
爲什麼不使用自動引用計數? (也許你可以在AppDelegate的applicationWillTerminate:application裏發佈它) – Chris
在你移到下一個視圖之前,你會釋放它。您也可以在viewDidUnload或dealloc方法中執行 – anuragbh