проблема утечки делегата приложения - PullRequest
1 голос
/ 24 апреля 2011

Когда я делаю анализ в xcode, я вижу эту утечку памяти в navController в моем appdelegate.m.

Приложение работает нормально, но я просто не могу убрать это предупреждениеКто-нибудь может помочь?Это нормально?

Очень ценю любую помощь.

- (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 Ответ

2 голосов
/ 24 апреля 2011

Вы никогда не выпускаете "UINavigationController" после вызова init.

Вы должны сохранить указатель на контроллер навигации и освободить его в своем методе 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...