app委托泄密问题

时间:2011-04-24 05:50:13

标签: iphone xcode

当我在xcode中进行分析时,我的appdelegate.m中的navController会出现内存泄漏。

该应用程序运行正常,但我无法得到此警告消失。有人可以帮忙吗?这可以吗?

非常感谢任何人的帮助。

- (void)applicationDidFinishLaunching:(UIApplication *)application {
    UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:viewController];
    // create window and set up view controller
    [window addSubview:navController.view];
    [window makeKeyAndVisible];
    navController.topViewController.title = SHKLocalizedString(@"Quick Lomo Pro");
    navController.navigationBar.tintColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:1.0];
    navController.navigationBar.translucent = NO;
    [navController setToolbarHidden:YES];
}

1 个答案:

答案 0 :(得分:2)

在调用init之后,你永远不会释放“UINavigationController”。

您应该存储指向导航控制器的指针并在appdelegate dealloc方法中释放它。

@interface AppDelegate : NSObject <UIApplicationDelegate> {

      UINavigationController *navController;
 }

@end

@implementation AppDelegate


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
     navController = [[UINavigationController alloc] init];
     ...
}

-(void) dealloc {

    [navController release];
    [super dealloc];
}

@end