2012-11-05 1 views
0

В экземпляре UIViewController с ARC лучшей практикой была бы «отпустить» удержанные подвиды основного зрения (например, self.myOutlet = nil) в - viewDidUnload, и я думаю, self.view = nil не является строго необходимо в этот момент.Release сохранил имущество, указывая на self.view

Что делать, если дополнительный retain-е изд свойство определяется и назначается как ...

self.anotherProperty = self.view;

или

_anotherProperty = self.view; // Предполагая, что «_anotherProperty» является ivar

... is self.anotherProperty = nil необходимо тогда?

ответ

0

Ничто в viewDidUnload (я не уверен, предполагая, что мы говорим о том, когда работает на предварительной прошивкой 6, как взгляды больше не выгружается в IOS 6, и, таким образом, viewDidUnload больше не называется) не является «необходимым»; это всего лишь дополнительная возможность разгрузить материал.

Но если вы хотите разгрузить материал должным образом в соответствии с соглашением для viewDidUnload, вы должны использовать свою собственность? Да. 1) Если нет, ваше свойство все равно сохранит объект вида, не позволяя ему освободиться, что является точкой разгрузки. 2) Вид был выгружен, что означает, что значение self.view установлено равным nil, и будет настроено на только что загруженное представление, когда мы решим загрузить представление. Если вы хотите, чтобы ваше свойство всегда указывало на self.view, вам необходимо последовать его примеру и установить его на нуль при выгрузке и установить его на загруженный вид в viewDidLoad.

Смежные вопросы