【黑马程序员】ARC概念及原理

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 1、指针分类       (1)强指针:默认的情况下,所有的指针都是强指针,关键字strong       (2)弱指针:__weak关键字修饰的指针声明一个弱指针如下:__weak Person *p; 2、什么是ARC?         Automatic
摘要由CSDN通过智能技术生成

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

 

1、指针分类

       (1)强指针:默认的情况下,所有的指针都是强指针,关键字strong

       (2)弱指针:__weak关键字修饰的指针

声明一个弱指针如下:__weak Person *p;

 

2、什么是ARC? 

        Automatic Reference Counting,自动引用计数,即ARC,在工程中使用ARC非常简单:只需要像往常那样编写代码,只不过永远不写retain,releaseautorelease三个关键字就好,这是ARC的基本原则。当ARC开启时,编译器将自动在代码合适的地方插入retain,releaseautorelease,而作为开发者,完全不需要担心编译器会做错。

       ARC与其他语言的“垃圾回收”机制不同。ARC:编译器特性;“垃圾回收”:运行时特性。

 

3、ARC工作原理及判断准则 

       ARCObjective-C编译器的特性,而不是运行时特性或者垃圾回收机制,ARC所做的只不过是在代码编译时为你自动在合适的位置插入releaseautorelease

只要没有强指针指向对象,对象就会被释放。

 

4、ARC机制

        一个对象可以拥有不止一个的持有者(这个类似MRC中的retainCount>1的情况)。

        ARC的一个基本规则即是,只要某个对象被任一strong指针指向,那么它将不会被销毁。如果对象没有被任何strong指针指向,那么就将被销毁。在默认情况下,所有的实例变量和局部变量都是strong

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值