今天刚好看到OC的内存管理这里,就来说说我的看法吧.因为和JAVA不一样,JAVA是具有自己内存回收机制的,但是OC没有这个机制.
我们通常使用的移动设备,内存都比较有限,如果我们不进行内存回收,那么设备运行程序就会越来越卡,甚至闪退等等.
这时我们就需要回收我们程序中,已经不再使用的内存空间,比如一些不再使用的对象或者变量.
当然,这个收回还是得遵循一定的原则的:首先就是只要还有对象在使用这个内存空间,那么我们就不能进行回收,只要我们还需要使用这个对象,那么就应该让这个对象的内存计数器加1,当不用的时候,就减1.其次就是,谁创建了,谁来release,也就是说如果你通过alloc,new,copy来创建了一个对象,那么你就必须调用release或者autorelease方法,如果不是你创建的,
那么就不用你来管理.
再者就是只要你调用了retain,无论这个对象时如何生成的,你都要调用release.
大概我暂时理解就是这么多吧,总之就是有始有终,有借有还,再借不难.:lol
|