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 的指针置为空就好了,不需要担心过度释放;



 

转载于:https://www.cnblogs.com/LkBolg/p/4959381.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值