2011-12-23 3 views
0

Я недавно начал создавать приложения для iOS программно (без конструктора интерфейса) и задавался вопросом, было ли какое-либо преимущество/отличие в объявлении представления ViewController как свойства перед его использованием в сравнении с просто создавая на loadview функция. Кроме того, я бы отключил представление внутри контроллеров dealloc, если я использую его как свойство?Объявление вида как свойства v. Временное создание

т.е. этот

- (void)loadView 
{ 
    _rootView = [[RootView alloc] initWithFrame:CGRectZero]; 
    [self setView:self.rootView]; 
} 

vs.

- (void)loadView 
{ 
    RootView *rootView = [[RootView alloc] initWithFrame:CGRectZero]; 
    [self setView:rootView]; 
    [rootView release]; 
} 

ответ

1

view уже вне свойство UIViewController. Объявление дополнительного свойства, такого как rootView, в вашем примере было бы бессмысленным. Таким образом, ваш второй пример - это путь. (Я не уверен, почему вы хотите создать представление с шириной и высотой ноля, но это уже другая история.)

В этом случае ваша реализация dealloc (если вы ее предоставите) должна вызвать [super dealloc] убедитесь, что view недвижимости отправлено сообщение release, но, конечно же, вы должны всегда позвонить [super dealloc] в любой переопределенной реализации dealloc.

+0

Я предполагаю, что это имеет смысл, поскольку я просто устанавливаю текущий вид. И причина, по которой я использую CGRectZero, заключается в том, что когда контроллер просмотра принимает новое представление, он автоматически настраивает его (в моем случае размер экрана). –

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