Когда следует указывать uiviewcontrollers как свойства - PullRequest
1 голос
/ 29 июля 2010

Что ж, это давало мне много проблем, так что теперь я спрошу

Когда должны быть объявлены контроллеры uiview как свойства?Я заметил, что во многих примерах контроллеры uiview, которые выдвигаются и извлекаются на контроллере uinavigation, не объявлены как свойства.

Я принял это вперед, и теперь каждый контроллер uiview, который я использую внутри своего кода, необъявлен как свойство (с памятью ofc обращаются осторожно), даже мой основной view-контроллер внутри приложения applelegate.Однако, поскольку прибор сообщал об утечке, я пытался объявить его как свойство ... в результате этого, даже если утечка все еще где-то, занимаемая памятью приложение сократилась вдвое.

Так что теперь я 'Мне интересно ... мой подход совершенно неправильный, и все контроллеры uiview должны быть объявлены как свойства?Есть ли особая причина объявить uiviewcontroller как свойство или нет?

спасибо за любые советы по этому вопросу

Ответы [ 2 ]

0 голосов
/ 29 июля 2010

Вы бы хотели сохранить ссылку на UIViewController, только если вам нужно было снова получить к ней доступ с контроллера представления, на который вы ее выдвинули. Вы не хотите постоянно держать его в памяти в любой другой ситуации, и вместо этого рассмотрите «ленивую загрузку» всех ваших контроллеров представления (вероятно, то, что вы делали заранее) и немедленное их освобождение (UINavigationController содержит сохраненную ссылку поэтому ваше приложение не будет аварийно завершать работу / выпускать его, пока оно находится на экране).

Каков был код, который, по словам Инструментов, просачивался? Пожалуйста, напишите.

0 голосов
/ 29 июля 2010

Просмотр контроллеров может занимать много памяти, а у iPhone не так много памяти.Может быть, есть какая-то часть контроллера, которая вам нужна, но я бы не оставил ее, если бы ее не нужно было хранить после ее закрытия.

...