Правильный способ освободить представление в UIViewController - PullRequest
0 голосов
/ 29 июля 2010

Я строю свой собственный вид в loadView контроллера представления. Просто чтобы проверить, смогу ли я освободить представление, как показано ниже, или есть что-то еще, что мне понадобится, чтобы освободить его? Я знаю, что фреймворк установит его на ноль, если потребуется освободить память.

- (void)loadView
{
    self.view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)];
    [self.view release];
        ...
}

Ответы [ 2 ]

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

Это выглядит немного странно, я бы сделал это вместо:

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)];
self.view = view;
[view release];

Если вы используете @property (retain), вам не нужно беспокоиться об освобождении его, когда оно установлено в ноль, например self.view = nil;. Однако вы должны выпустить его в dealloc.

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

Свойство view UIViewController будет предоставлено вам самим UIViewController.Вы правы, однако, что когда вы создаете представление, которое вы назначаете для UIViewController, вам нужно его освободить, но способ, которым вы пытаетесь это сделать, неверен.Либо делайте то, что предлагает jtbandes, либо просто:

self.view = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)] autorelease];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...