ios笔记--ARC笔记

ARC知识介绍

(1)概念:ARC的全称是Automatic Reference Counting (自动引用计数),是自IOS5之后增加的新特性,编译器会自动在合适的地方插入适当的retainreleaseautorelease语句,会自动生成内存管理的代码,不用程序员手动编写。

 

(2)如果是手动管理内存,可以简称MRC(Manual Reference Counting)

 

(3)作用:编译器自动管理内存地址,让程序员更加专注于APP的业务

 

(4)好处:基本上能够避免内存泄漏

 

(5)强指针:默认所有指针变量都是强指针;被__strong修饰的指针。

 

(6)弱指针:被__weak修饰的指针

 

(7)ARC中的@property参数

1.strong:用于OC对象,相当于MRC中的retain

2.weak:用于OC对象,相当于MRC中的assign

3.assign:用于基本数据类型,跟MRC中的assign一样

4.copy:一般用于NSString,跟MRC中的copy一样

 

(8)工作原理:只要还有一个强指针变量指向对象,对象就会保持在内存中。

:

ARC环境引用

Person.h  和  Dog.h 中不能都声明strong

@property (nonatomic, strong) Dog *dog;

@property (nonatomic, strong) Person *person;

一端用strong,一端用weak,不限制谁用weak,这样弱指针指向的对象会先销毁,另一端若没有指针指向,则也会销毁。

 

@property (nonatomic, strong) Dog *dog;

@property (nonatomic, weak) Person *person;

 

所以,当两端循环引用的时候,解决方案:

ARC:

1端用strong1端用weak

ARC

1端用retain1端用assign

 

(9)ARC特点总结:

1)不允许调用releaseretainretainCount

2)、允许重写dealloc,但是不允许调用[super dealloc]


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值