我对内存管理有疑问。在我的应用程序委托中,我有以下方法;其中welcomeViewController是一个ivar。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    welcomeViewController = [[CBWelcomeViewController alloc] init];
    UINavigationController *appNavigationController = [[UINavigationController alloc] initWithRootViewController:welcomeViewController];
    [self.window addSubview: [appNavigationController view]];
    [self.window makeKeyAndVisible];
    return YES;
}


要释放welcomeViewController的内存,我只需在dealloc方法中对其调用release。

- (void)dealloc {
    [welcomeViewController release];
    [window release];
    [super dealloc];
}


我的问题是,管理appNavigationController内存的正确方法是什么?

最佳答案

您应该将appNavigationController设置为实例变量,并在release中将其设置为dealloc

您不需要将welcomeViewController作为实例变量,恰恰相反。
只需分配/初始化它,然后将其传递给UINavigationController,然后将其保留,然后立即release

关于iphone - application:didFinishLaunchingWithOptions:内存管理,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4421418/

10-10 17:36