之前看过一本书叫《Objective-C高级编程 iOS与OS X多线程和内存管理》,里面关于内存管理的讲解还是比较到位的。下面总结一下:
内存管理的思考原则我觉的可以称之为引用计数的思考原则,则在对象被使用时retainCount>=1,对象不使用时retaincount=0。当然说起来挺容易的,但是使用时还是需要遵循一定的章法的。
总结为以下四条
1.自己生成的对象,自己持有。
2.非自己生成的对象,自己也能持有。
3.自己持有的对象,一旦不再需要,就需要立即释放
4.非自己持有的对象,自己无法释放
详解
1.自己生成的对象,自己持有
即通过alloc,new,copy,mutablecopy等生成方法可以持有对象。生成对象的时候,retainCount=1
2.非自己生成的对象,自己也能持有
通过retain方法可以持有非自己生成的对象.此时retainCount加1
3.自己持有的对象,一旦不再需要,就需要立即释放
主要的释放方法release,此时retainCount会1
4.非自己持有的对象,自己无法释放
没有持有对象,那么你不能保证自己可以与引用计数一一对应,所以无法释放,否则可能会造成内存泄漏