新手问题:关于内存管理的代码写法
我写了一个类,一辆车(Car)有四个轮胎(Tire),init车的时候,轮胎也就被创建好了,release车的时候,轮胎也会被释放掉。如下的代码会在我标注出错处出错,如果我想让调用者保持一个轮胎,我注释掉的代码是否比较规范的做法?或者应该怎么做?我刚开始学OC,希望高手能帮我讲解下。#import "Car.h"--------------------编程问答-------------------- ptile = [mycar tileAtIndex:0]; 加alloc,init。不用了再release --------------------编程问答-------------------- 注释打开可以
#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;
}
ios开发超级群,高手和高手之间的交流,来者注明来自CSDN:43146334 --------------------编程问答-------------------- //[ptile retain];
[mycar release];
NSLog(@"%@",[ptile description]); //出错
//[ptile release];
一般来说,就这样retain住就行了。
但一些特殊情况的话,可能用copy更好,(比如这个轮胎其他各个地方都在用,而你在这个地方想保持独立不想和其他地方公用一个对象)。
补充:移动开发 , iPhone