九、Objective-C内存管理准则
我们可以把上面的接口按对retainCount的操作性质归为两类,
A类是加一操作:1,3,4
B类是减一操作:2,5(延时释放)
内存管理准则如下:
1,A与B类的调用次数保持一制
2,为了很好的保障准则一,以实例对象为单位,谁A了就谁B,没有第二者参与
代码:
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSObject *o = [[NSObject alloc] init]; //retainCount为1
[o retain]; //retainCount为2
[o release]; //retainCount为1
[o autorelease]; //retainCount为1
[pool release]; //retaincount为0,触发dealloc方法