我有一个简单的应用程序,它只是加载一个包含UIWebView的视图控制器。在运行它时,我注意到XCode报告的内存量从vc分配之后的2 MB增加到创建后的12.5 MB。 但是在删除vc后,内存量不会下降,事实上它甚至会进一步上升到13Mb。但是XCode的泄漏分析仪没有报告任何问题。
此处从应用程序的主(并且只有其他)视图控制器中创建和销毁视图控制器:
- (void) viewDidAppear:(BOOL)animated
{
static BOOL presented = NO;
if (!presented)
{
PresentationViewController *vc = [[PresentationViewController alloc] initWithPresentationId:@"index.html"];
__weak typeof(vc) weakVc = vc;
[vc setExitBlock:^{
[[weakVc presentingViewController] dismissViewControllerAnimated:YES completion:nil];
}];
[self presentViewController:vc animated:YES completion:nil];
presented = YES;
}
}
视图控制器的dealloc被调用,因此它被销毁,是的,Web视图委托正在被填充。
- (void)dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver:self];
[self.webView stopLoading];
self.webView.delegate = nil;
}
为什么删除视图控制器时内存消耗不会下降?
答案 0 :(得分:2)