Objective-C内存管理

总结表格: 获得方式 临时变量 成员变量 通过alloc/copy/init方式获得 用完release 再dealloc中release 其他方式获得 啥都不用管,也不用release 调用retain,并在dealloc中release 这其中的原因是alloc/copy/init方式获得的对象有retainCount = 1,所以在生命周期结束时需要手动release,不管是临时变量还是成员变量。对于其他方式获得的对象,由于约定这种对象都是autorelease的。所以对于临时变量正好啥都不用做。但是成员变量啥都不做就不行了,因为出了生命周期就会autorelease了,所以额外retain一下即可。既然retain了,在成员变量所属的类的dealloc中再release。 以下是Learn Objective-C on Mac的例子: 对于临时变量: [c light=”true” toolbar=”false”] NSMutableArray *array; array = [[NSMutableArray alloc] init]; // count: 1 // use the array [array release]; // count: 0 NSMutableArray *array; [/c] —————————————————————– [c light=”true” toolbar=”false”] array = [NSMutabelArray arrayWithCapacity: 17]; // count: 1,… Continue reading Objective-C内存管理