这是上个周的问题了,也没彻底解决,不过每次遇到都是自己说服自己去理解。还有就是设计模式上的问题吧。杨总让我把作业搞的复杂一点,于是我就把长方形,正方形什么得图形做了个类工厂,感觉编程也可以像工业生产一样去做,确实能节省很多的精力。回过头来想想,发明计算机是为了什么,有了编程语言是为了什么,不就是为了解放人么?和学长交流了一下,设计模式有很多,应对不同的问题,会有不同的设计模式。以后抽空看看设计模式,应该属于理解的东西,和编程规范差不多吧,就是理解了,不知不觉中用出来的东西。
,上周遇到的问题。
-(cat *)add:(cat *)c1
{
cat * c2=[[cat alloc]init];
c2.a=c1.a;c2.b=c1.b;
return c2;
}
在这里我只写个例子吧,这是个实例方法,传入一个对象,说到底这个对象是个指针,有时候为了操作不会对原来对象产生变化,就会在方法中创建一个对象,我的理解是创建一个临时对象,不知道我这种理解对不对。
这个对象创建成功,做完操作,返回。问题来了,要是在方法外,我们再次用到这个C2,这个时候C2所指的位置会不会被释放?如果没释放,何时释放才合理?假如释放了,再次引用就是不安全的了。
这就是我刚遇到的问题,可能过几天回过头来看看这就不是问题了。
现在我也有自己的理解,用来说服我自己。就是说这个对象开辟了内存,在没有release的时候是不会释放的,当程序结束,会由自动释放池自动释放。那这部分内存是一直被占用的,就不会产生不安全的状况。这样的解释很勉强,因为这样创建的对象多了的话,会让系统崩溃。我还不清楚这个自动释放池到底有多智能,会自动检测并释放用完的,还没释放的对象,并释放。
希望路过的大神指点在下。