簡體   English   中英

分配rootviewcontroller時發生內存泄漏

[英]Memory leak while assigning rootviewcontroller

儀器在self.window.rootViewController= navigationController;處顯示了100%的內存泄漏self.window.rootViewController= navigationController; 應用程序使用ARC。 UINavigationControllerUIViewController和window都是屬性具有很強的屬性。 我該如何解決此泄漏。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
    txnObserver = [[InAppPurchaseObserver alloc] init];
        txnObserver.delegate = self.viewController;
        [[SKPaymentQueue defaultQueue] addTransactionObserver:txnObserver];

    navigationController = [[UINavigationController alloc]initWithRootViewController:viewController];
        **self.window.rootViewController= navigationController;**
        [self.window makeKeyAndVisible];
        return YES;
}

相同的代碼在iOS 6中未顯示任何泄漏,但在iOS 7中顯示了泄漏。

更新了2013/10/10問題的詳細信息。

您可以通過以下代碼來更改didFinishLaunchingWithOptions ,而無需使用@Controller的viewController屬性:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    ViewController *viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
    UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:rootViewController];
    self.window.rootViewController = navigationController;
    [self.window makeKeyAndVisible];
    return YES;
}

使用@property (nonatomic, strong) ViewController *viewController;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:self.viewController];
    self.window.rootViewController = navigationController;
    [self.window makeKeyAndVisible];
    return YES;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM