Борьба с управлением памятью iOS с помощью ARC

Я посмотрел видео сеанса 242 WWDC 2012 года об использовании инструментов для решения проблем с памятью и подумал, что создам очень простое приложение, чтобы опробовать то, что я узнал.

Мое приложение использует раскадровку с двумя viewControllers в нем. Первый viewController отображает UILabel и UIButton. Когда вы нажимаете кнопку, загружается второй viewController, и он также отображает UILabel и UIButton, которые при нажатии удаляют второй viewController, чтобы первый отображался снова. В инструментах я ожидал увидеть некоторую память, выделенную при добавлении второго viewController, и затем эту память для освобождения, чтобы я вернулся к первоначальному объему используемой памяти. Именно так работает демонстрация Apple в видео WWDC.

Вместо этого, когда я делаю снимки каждый раз, когда нажимаю кнопку отклонения и возвращаюсь к предыдущему viewController, я вижу, что использование памяти продолжает увеличиваться очень незначительно. Это никогда не ноль... это всегда идет вверх.

Он увеличивается только примерно на 500-700 байт каждый раз, что, как я понимаю, очень мало, но я хочу понять, почему он вообще увеличивается.

Единственный код, добавленный в мой первый viewController, - это единственный метод добавления второго контроллера представления, который называется VC2 в раскадровке.

- (IBAction)addVC2:(id)sender
{
    ViewController2 *template = [self.storyboard instantiateViewControllerWithIdentifier:@"VC2"];

    [template willMoveToParentViewController:self];
    [self addChildViewController:template];
    [self.view addSubview:template.view];
    [template didMoveToParentViewController:self];
}

Точно так же второй viewController (VC2) имеет только один добавленный метод, который удаляет / удаляет его:

- (IBAction)dismiss:(id)sender
{
    [self willMoveToParentViewController:nil];
    [self.view removeFromSuperview];
    [self removeFromParentViewController];
}

В какой-то момент я добавил dealloc в VC2, чтобы он вызывался и был.

У меня есть настройки распределения инструментов, как это:

Я не могу понять, почему использование памяти набирает обороты снова и снова. Что-то сохраняется каждый раз, когда я добавляю и удаляю второй контроллер вида, но я не могу найти его.

0 ответов

Другие вопросы по тегам