我写了一个类,一辆车(Car)有四个轮胎(Tire),init车的时候,轮胎也就被创建好了,release车的时候,轮胎也会被释放掉。如下的代码会在我标注出错处出错,如果我想让调用者保持一个轮胎,我注释掉的代码是否比较规范的做法?或者应该怎么做?我刚开始学OC,希望高手能帮我讲解下。
#import "Car.h"
#import "Tire.h"
int main(int argc, const char * argv[])
{
    Tire* ptile=nil;
    Car* mycar = [[Car alloc] init];
    ptile = [mycar tileAtIndex:0];
    //[ptile retain];
    [mycar release];
    NSLog(@"%@",[ptile description]); //出错
    //[ptile release];
    return 0;
}

解决方案 »

  1.   

    ptile = [mycar tileAtIndex:0]; 加alloc,init。不用了再release
      

  2.   

    注释打开可以ios开发超级群,高手和高手之间的交流,来者注明来自CSDN:43146334
      

  3.   

        //[ptile retain];
        [mycar release];
        NSLog(@"%@",[ptile description]); //出错
        //[ptile release];一般来说,就这样retain住就行了。
    但一些特殊情况的话,可能用copy更好,(比如这个轮胎其他各个地方都在用,而你在这个地方想保持独立不想和其他地方公用一个对象)。