《iOS总结》OC内存管理-MickyChiang

经常会在笔试面试中遇到内存管理的问题 下面总结一下内存管理的知识点= =


问题:

请简述OC内存管理机制


答:

OC采用垃圾回收机制和引用计数机制来管理内存。

引用计数机制分为ARC和MRC两大方面。

MRC中,创造一个对象时会采用alloc方法,这时这个对象的引用计数加1,我们称为这个对象的所有权为1。

增加一个对象的引用计数的方法还有retain、copy、new等,减少一个对象的引用计数的方法为release、autorelease。

当一个对象的引用计数增加的时候,必然要对应一个引用计数减少的方法,使其保持平衡。

当一个对象的引用计数为1的时候,我们在调用release或者autorelease的时候,系统会自动调用dealloc方法,释放对象所占用的资源。

ARC中,全称叫 ARC(Automatic Reference Counting)。简单地说,就是代码中自动加入了retain/release,原先需要手动添加的用来处理内存管理的引用计数的代码可以自动地由编译器完成了。原理和MRC一样,只不过是系统来管理内存。

和内存有关的属性修饰词:retain、assign、copy、weak、strong

retain:会使对象的引用计数加1;

assign:只是简单的赋值,不会使引用计数加1;

copy:分为深拷贝和浅拷贝。

浅拷贝相当于retain,深拷贝会对copy出来的对象重新开辟一块内存空间,需要对copy出来的对象单独做内存管理。

对于不可变对象copy只做指针拷贝相当于浅拷贝。

weak:弱引用,只能给对象使用,不管理对象的内存问题。在ARC中使用,相当于assign,但是修饰的对象为空时,其指针会指向nil,防止野指针的出现;

strong:在ARC中使用,相当于retain;

unsafe_unretained与weak作用相同但是指针不会置nil,会出现野指针。


知识点:







暂时就这些= =希望大家给予补充及意见= = 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值