Управление памятью при возврате объекта Objective-C - PullRequest
3 голосов
/ 08 июля 2010

В Objective-C, если у меня есть метод, в котором я выделяю и инициализирую объект, а затем возвращаю его, где / как мне его освободить?

например, допустим, у меня есть метод, в котором я создаю объект:

- (void)aMethod {
    UIView *aView = [self createObject];
}

- (UIView *)createObject {
    UIView *returnView = [[UIView alloc] initWithFrame:CGRectZero];
    return returnView;
}

Когда я отпускаю этот объект? Или я бы просто выпустил его?

Ответы [ 3 ]

8 голосов
/ 08 июля 2010

Правила для управления памятью ясны в этом вопросе.Вы должны прочитать их.Очень простой и фундаментальный для написания кода Objective-C с использованием фреймворков Apple.

2 голосов
/ 08 июля 2010
- (void)aMethod {
    UIView *aView = [self createObject];
}

- (UIView *)createObject {
    UIView *returnView = [[UIView alloc] initWithFrame:CGRectZero];
    [returnView autorelease];
    return returnView;
}
0 голосов
/ 08 июля 2010

Помните также, что сборка мусора отсутствует на iPhone, поэтому вы не можете выполнить авто-выпуск, если разрабатываете для этой среды.

Что касается того, когда вы должны освободить объект, простой ответ - когда вызакончил использовать его и прежде чем уничтожить ваше приложение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...