是否有必要释放对象?

时间:2010-08-25 16:40:28

标签: objective-c syntax

以下是代码:

-(void)myOwnMethod{


    NSString *myString;

    myString = [[NSString alloc]init];

    /*

    Some logic about the String


    */

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

}

如您所见,myString对象仅在方法中使用,是否需要释放它?或者当方法完成时会自动释放?谢谢。

2 个答案:

答案 0 :(得分:7)

是的,你需要发布它。如果您致电alloc,则必须致电releaseautorelease

注意:如果您正在使用垃圾收集(目前仅适用于OS X,而不是iOS),则releaseautorelease不执行任何操作,您无需调用它们。如果您正在编写内存管理代码(包括为iOS编写的任何代码),那么您必须调用它们。

答案 1 :(得分:1)

是。每个allocretaincopy的简单规则,您需要releaseautorelease

这适用于Objective-C和CoreFoundation对象。