gpt4 book ai didi

objective-c - 导航 Controller 和泄漏

转载 作者:行者123 更新时间:2023-11-29 05:02:54 25 4
gpt4 key购买 nike

我使用了 Instruments 工具,它告诉我没有内存泄漏。但我正在努力理解其背后的逻辑。这怎么就不会漏了呢?似乎幕后发生了一些魔法,我的 AppDelegate 正在使用我分配的 navController 来设置 self.navigationController 的属性。如果没有我在这里的初始化,我的属性为零。难道我不应该被迫创建委托(delegate)的这些实例变量,然后在 dealloc 中释放它们吗?为什么这不是泄漏?或者我使用仪器工具错误?

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 

// two alloc calls which would imply I need a release
UINavigationController *navController = [[UINavigationController alloc] init];
UIViewController *calcController = [[CalculatorViewController alloc] init];

[navController pushViewController:calcController animated:YES];

[window addSubview:navController.view];
[window makeKeyAndVisible];

// can not release here, if i do, no views show up
// [navController release];
// [calcController release];

return YES;
}
...
// NOTE: No dealloc for navController or calcController
- (void)dealloc {
[window release];
[super dealloc];
}

最佳答案

navControllercalcController 都在程序的生命周期中存在。当程序终止时,所有内容都被清除,所以没关系。你确实有一个泄漏,但是一个无关紧要的泄漏。

关于objective-c - 导航 Controller 和泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6448040/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com