objective 2.0 内存管理机制 笔记
release 一个对象后 立即把指针清空 (release一个空指针完全是合法的,不会发生任何事情)
[object release];
object = nil;
指针赋值给另一个指针
NSMutableArray *array = [[NSMutableArray alloc]init];
NSLog(@"%d",[array retainCount]);//count is 1
NSMutableArray *temp = array;
[temp retain];
NSLog(@"%d,%d",[array retaincount],[temp retaincount]);
//array retaincount is 2,temp retaincount is 2 too因为他们都是指针 指向同一个对象
//......
[temp release];// 有retain 必须有release;;;; 很重要
temp = nil;
在函数中创建返回对象 需要把这个对象设置为autorelease
-(NSMutableArray *)fun1
{
NSMutableArray *array = [[[NSMutableArray alloc]init]autorelease];
retuen (array);
}
使用property
除了dealloc 始终以.操作符的方式来访问propery
self.objeb Object.objet
在dealloc 中release 对象
-(void)dealloc
{
[object release];
}