2011-04-24 5 views
1

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]; 
} 

답변

2

init를 호출 한 후에는 결코 "UINavigationController"를 릴리스하지 않습니다.

내비게이션 컨트롤러에 대한 포인터를 저장하고이를 해제하여 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 
+0

빠른 답장을 보내 주셔서 감사합니다. 내비게이션 컨트롤러에 대한 포인터? 확실히 이해 못 하겠어 ... 좀 더 구체적으로 할 수 있니? 또는 일부 예제 코드가 도움이 될 것입니다. – Clasher

+0

방금 ​​코드 조각으로 답변을 편집했습니다. 도움이 되길 바랍니다. –

+0

알았습니다! 정말 고맙습니다! – Clasher