Когда доступ к представлению свойства UIViewController, он сначала проверяет, есть ли у него существующее представление, и возвращает его. Если нет, он загружает свой наконечник или вызывает -loadView.Лучший способ определить, что UIViewController загружен и имеет действительный вид?
Когда контроллер получает сообщение -didReceiveMemoryWarning, поведение по умолчанию заключается в удалении этого кэшированного представления (при условии, что оно не используется в то время).
Если я переопределяю -didReceiveMemoryWarning, как я могу определить, было ли очищено представление? Я понимаю, что реализация по умолчанию проверяет, есть ли self.view.superview == nil. Если это так, он очищает кешированный вид. Конечно, сначала он проверяет, есть ли , а если нет, он ничего не делает. Тем не менее, я, как подкласс, не могу вызвать self.view.superview, поскольку если не является, он будет генерировать его.
Итак, как мне понять, существует ли _view? (Я не могу просто взглянуть на _view: у меня возникают ошибки при создании для устройства).
Это кажется несколько хрупким (он полагается на Apple, всегда используя свои собственные устройства доступа), но, похоже, работает. Благодаря! – 2008-12-06 03:36:28
Я согласен, что он немного хрупкий, но нет ничего документированного и, безусловно, менее хрупкого, чем прямой доступ к ivars – 2009-05-21 20:37:52