Когда установить объекты на ноль при использовании ARC?

Я нахожусь на проекте iPhone с помощью ARC, Приложение на основе навигации, использующее UINavigationController,

Типичный вариант использования - перейти от "основного" UIViewController к "вторичному" UIViewController несколько раз, может быть, до 100 раз. Вторичный контроллер имеет много статических, локальных изображений PNG, некоторые из которых повторяются.

Я профилирую приложение и вижу, как при переходе от "основного" к "вторичному" контроллеру оно выделяет около 0,8 МБ, но при нажатии кнопки назад не освобождает память. Итак, когда я снова иду на вторичный контроллер, выделяются другие 0,8 МБ и так далее...

Отладка, я заметил, что viewDidUnload: метод вторичного UIViewController никогда не вызывается, но я также читал, что это тот метод, в котором я должен установить ноль ссылок, хранящихся в контроллере. Делать так в viewDidDisappear: не помогает, потому что я хочу, чтобы это происходило только при нажатии кнопки назад, то есть при извлечении контроллера из стека (viewDidDisappear: метод также вызывается при помещении другого контроллера в стек).

Итак, вопросы: где я должен это сделать? Можно ли заставить этот метод быть вызванным? Хорошо ли это поведение (профилирование, выделения увеличились до 20 МБ после некоторых циклов "main" -> "Secondary" -> "Main" -> "Secondary" -> ...)??

Спасибо всем заранее

1 ответ

ARC просто используется для уменьшения кода и внутреннего управления памятью. Для получения более подробной информации, пожалуйста, пройдите учебник ниже, чтобы вы могли легче понять концепции.

Понимание автоматического подсчета ссылок в Objective-C

Я надеюсь, что это может помочь вам.

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