我有一个UIViewController A,在这一点上我的内存是104 Mb。在A中,我通常像这样打开UIVIewController B:
UIViewController *b = [[UIViewController alloc] initWithLevel:level actualUser:actualUser parentViewController:self];
[self presentViewController:b animated:NO completion:nil];
目前我的内存为132 Mb,当用户触摸按钮时,我会像这样打开UIViewController C:
UIViewController *c = [[UIViewController alloc] initWithBlackboard:3];
[self dismissViewControllerAnimated:NO completion:^{
[parentViewController(i get this property in the init method) presentViewController:c animated:NO completion:nil];
}];
在这里,我的做法是关闭B然后打开C,这样当我关闭C时,它会直接回到A。
此时我的内存是153 Mb,这是错误的,因为B的内存从未被释放。之后,我会像这样关闭以返回到A:
[self.presentingViewController dismissViewControllerAnimated:NO completion:^{}];
我原本有104MB的内存,现在有132MB,所以B从未被释放。窗口的打开和关闭方式是正确的,但内存却是个问题。
我已经单独测试了每个UIViewController,并没有内存问题。问题出现在它们绑定在一起的时候。有什么想法吗?
我也检查了内存泄漏,但没有发现任何问题。
ViewControllerB
的强引用。 - Eric QianViewControllerB
没有被释放,而不是呈现ViewControllerB
的ViewControllerA
。 - Eric Qian