2012-08-09 50 views
1

我是Xcode的新手,我真的很感谢任何帮助消除内存泄漏。 它显示在行上: [window addSubview:navcontrol.view]; 下面是我的代码:Xcode 4.4内存(Core Foundation/Objective-C)存储在'navcontrol'中的对象的潜在泄漏

#import "ExSignupAppDelegate.h" 
#import "SignupTableViewController.h" 

@implementation ExSignupAppDelegate 

@synthesize window; 

@synthesize viewController; 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
    { 
    UINavigationController* navcontrol; 
    navcontrol = [[UINavigationController alloc]init]; 
    SignupTableViewController* signupVC = [[SignupTableViewController alloc]initWithNibName:@"SignupTableViewController" bundle:nil]; 
    signupVC.title = NSLocalizedString(@"Title Abstract Search", @""); 
    [navcontrol pushViewController:signupVC animated:NO]; 
    [signupVC release]; 
    [window addSubview:navcontrol.view]; 

    return YES; 
    } 

-(void)applicationDidFinishLaunching:(UIApplication *)application 
{ 
    [window addSubview:viewController.view]; 
    [window makeKeyAndVisible]; 
} 

- (void)dealloc 
{ 

    [window release]; 
    [viewController release]; 
    [super dealloc]; 
} 

@end 

回答

0
[window addSubview:navcontrol.view]; 

应更换为

window.rootViewController = navcontrol; 
1

您使用分配/初始化创建navController,所以你有责任将其释放。 你行

navController = [[UINavigationController alloc]init]; 

更改为

navController = [[[UINavigationController alloc]init] autorelease]; 

这将引发你的navController到它以后发布的autoreleasepool。如果您需要其他方法中的navController,则应将其存储在属性中。

+0

它给了我错误'ARC禁止'autorelease'的显式消息发送 – 2015-01-06 19:10:08