当我在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];
}
答案 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