Должны ли мы освободить делегата в методе dealloc? - PullRequest
0 голосов
/ 23 марта 2012

привет У меня небольшой вопрос по управлению памятью target-C.

Я знаю, что если свойство сохраняется, мы должны освободить его в методе dealloc. например:

@property (nonatomic, retain) NSString *title;

в методе dealloc:

-(void) dealloc
{ 
    [title release];
    [super dealloc];
}

Но если мы объявим делегата (используя assign)

@property (nonatomic, assign) id titleDelegate

Должны ли мы выпустить его в методе dealloc?

[titleDelegate release]

Заранее благодарим за любые советы.

Ответы [ 4 ]

1 голос
/ 23 марта 2012

Нет.Вы не распределили память или сохранили. Так что не освобождайте ее.сделать это ноль.Вы освободите память для объекта, только если вы являетесь его владельцем.

0 голосов
/ 28 января 2013

никогда не освобождайте делегата, просто поставьте его на ноль

0 голосов
/ 23 марта 2012

Нет.Вы не должны и не должны выпускать его.Вы не являетесь владельцем объекта

0 голосов
/ 23 марта 2012

Вам нужно освободить только то, что вы оставите. Назначение не увеличивает retainCount. Итак, ответ - нет.

...