2010-08-25 2 views
0

Вот код:Необходимо ли освободить объект?

-(void)myOwnMethod{ 


    NSString *myString; 

    myString = [[NSString alloc]init]; 

    /* 

    Some logic about the String 


    */ 

    [myString release]; //Do I need to release the myString Object? 

} 

Как вы можете видеть, объект туЗЬптд используется только в методе, мне нужно сделать, чтобы освободить его? или он будет автоматически освобождаться при завершении метода? Спасибо.

ответ

7

Да, вам нужно отпустить его. Если вы позвонили alloc, вы должны позвонить либо release, либо autorelease.

Примечание: Если вы используете сбор мусора (в настоящее время доступно только для OS X, а не для iOS), то release и autorelease ничего не делают, и вам не нужно их называть. Если вы пишете код, управляемый памятью (включая все, что написано для iOS), вы должны их вызвать.

1

Да. Простое правило для каждого alloc, retain, или copy, вам нужен release или autorelease.

Это касается объектов Objective-C и CoreFoundation.

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