Для тех, у кого все еще есть проблемы с этим, я сталкивался с чем-то похожим даже в примере приложения. Ответ оказался таким:
UIImageView Создано в Интерфейсном Разработчике, установленное в ноль при необходимости
[self memberVar]
Загружает объект, пока:
self.memberVar
Просто получает доступ к текущему значению, которое останется нулевым. Поэтому я пытаюсь уйти от использования "." оператор. Это очень тонкая проблема, которую я видел в последнее время во многих примерах кода. Метод подчеркивания в новых примерах:
@synthesize memberVar = _memberVar;
по-прежнему просто оставляет переменную-член nil, пока вы не получите к ней доступ с помощью [self memberVar]
. Я думаю, что Apple, возможно, пытается избежать этой проблемы, ссылаясь на _memberVar в реализации (например, в dealloc
с [_imageView release]
)
ОБНОВЛЕНИЕ: Кроме того, если вы используете initWithNibName
или loadNibNamed
для загрузки контроллера с перо или сгиб на лету (например, пользовательский UITableViewCell
), не забудьте позвонить:
[self loadView];
Это также загружает переменные-члены. Они не загружаются автоматически, если только вид не отображается или не pushViewController
на navigationController
.