如何避免在内存中保留视图?我需要将所有对象设置为nil吗?

时间:2016-01-14 01:53:34

标签: ios memory uikit

我是编程新手,过去几个月一直在开发iOS应用程序。对我而言,该应用程序看起来在功能上非常接近完成,但我今天遇到了一个问题,我认为这可能是一个更大的潜在问题。

当我在导航控制器中解除ViewController并稍后返回视图时,它似乎仍具有相同的值。我想当我解散视图被破坏并且后来创建一个新视图时。我一直在尝试阅读它,我想也许它是一个内存循环的东西,视图保存在内存中,因为视图中的对象仍然有指针?关于如何处理这个问题有一些一般规则吗?我是否应该在离开视图控制器时将对象设置为nil?如何确保我不会在内存中保留不必要的内容?

2 个答案:

答案 0 :(得分:1)

If you create your view controller in the following manner, creating it and then pushing it(commented out line) or presenting it, then it is guaranteed that the ViewController will always have an initial state as defined by your initializtion code.

- (IBAction)showViewController: (UIButton *)sender {
    MyViewController *vc = [[MyViewController alloc] init];

    [self presentViewController: vc animated: YES completion: nil];
    //[self.navigationController pushViewController:vc animated:YES]
}

答案 1 :(得分:-1)

检查你忽略的viewController,如果属性有强引用(strong,retain)指向parentViewController。