当前位置:编程学习 > wap >>

新手问题:关于内存管理的代码写法

我写了一个类,一辆车(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;
}
--------------------编程问答-------------------- ptile = [mycar tileAtIndex:0]; 加alloc,init。不用了再release --------------------编程问答-------------------- 注释打开可以

ios开发超级群,高手和高手之间的交流,来者注明来自CSDN:43146334 --------------------编程问答--------------------     //[ptile retain];
    [mycar release];
    NSLog(@"%@",[ptile description]); //出错
    //[ptile release];

一般来说,就这样retain住就行了。
但一些特殊情况的话,可能用copy更好,(比如这个轮胎其他各个地方都在用,而你在这个地方想保持独立不想和其他地方公用一个对象)。
补充:移动开发 ,  iPhone
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,