ARC 内存问题浅析

OC的ARC是编译时特性 :

系统会在编译时适当位置加上 release  ,autorelease ,retain,
程序运行流程 : 预编译—>编译—>汇编—>链接—>运行

在ARC 中 已经不能在使用release, autorelease, retain 但copy 依然可以使用并保留其原本的属性

-(void)dealloc{

在ARC 中  dealloc 方法中不能使用  [super dealloc]      
 但是 dealloc 方法依然有效(当前对象即将释放 执行该方法) 我们可以在这里进行一些操作 :例如 :移除通知 ,移除KVO

}

在ARC 中  :局部对象不需要内存管理 ,出了方法后会自动释放
                全局对象也不需要管理内存,但是要注意交叉(循环)引用

在ARC 中依然有内存泄露,循环导入的话还是会引起内存泄露 只要将其中一个引用改成weak即可
weak的存在就是为了防止循环引用;

strong :强引用
 强引用指向的对象不会被释放 一个对象没有强引用指向会立即释放
weak :弱引用
 弱引用指向的对象释放时 ,会自动置空

//创建对象指针当没有修饰词时 默认为strong

在ARC 中想要主动释放对象 只需要将strong 的指针置为空就好了,不需要担心过度释放;



 
posted @ 2015-11-12 16:13  婆娑年华  阅读(152)  评论(0编辑  收藏  举报