内存管理 ARC

本文详细介绍了ARC(Automatic Reference Counting)自动引用计数的实现原理与使用细节,包括其如何通过编译器自动生成内存管理代码来简化开发流程,避免内存泄漏等问题,并对比了强指针与弱指针的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ARC:Automatic Reference Counting(自动引用计数)

ARC的实现细节
编译器会自动在适当的地方插入适当的retainreleaseautorelease语句
也就是说, 编译器会自动生成内存管理的代码, 不用程序猿手动编写

ARC的注意点
ARC是编译器特性,而不是运行时特性
ARC不是其它语言中的垃圾回收, 有着本质区别

ARC的优点
完全消除了手动管理内存的烦琐, 让程序猿更加专注于app的业务
基本上能够避免内存泄露
有时还能更加快速,因为编译器还可以执行某些优化 

ARC的判断原则
     ➢ 只要还有一个强指针变量指向对象,对象就会保持在内存中
强指针
     ➢ 默认所有指针变量都是强指针
     ➢ __strong修饰的指针
弱指针
     ➢ __weak修饰的指针

ARC的使用细节
  • 不能调用releaseretainautoreleaseretainCount
  • 可以重写dealloc,但是不能调用[super dealloc]

ARC中的@property
strong : 用于OC对象, 相当于MRC中的retain
weak : 用于OC对象, 相当于MRC中的assign
assign : 用于基本数据类型, MRC中的assign一样
copy : 一般用于NSString, MRC中的copy一样

MRC转为ARC: Xcode: Edit->Refactor->Conver to Objective-C ARC...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值