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];

}

原文地址:https://www.cnblogs.com/gaoxiao228/p/2483568.html