37-ARC的工作原理

作者: 评评分分 | 来源:发表于2015-09-10 06:56 被阅读251次

什么是ARC

Automatic Reference Counting,自动引用计数,即ARC,可以说是WWDC2011和iOS5所引入的最大的变革和最激动人心的变化

你已经知道,ARC会自动帮你插入retain和release语句。ARC编译器有两部分,分别是前端编译器和优化器。

1. 前端编译器

前端编译器会为“拥有的”每一个对象插入相应的release语句。如果对象的所有权修饰符是__strong,那么它就是被拥有的。如果在某个方法内创建了一个对象,前端编译器会在方法末尾自动插入release语句以销毁它。而类拥有的对象(实例变量/属性)会在dealloc方法内被释放。事实上,你并不需要写dealloc方法或调用父类的dealloc方法,ARC会自动帮你完成一切。此外,由编译器生成的代码甚至会比你自己写的release语句的性能还要好,因为编辑器可以作出一些假设。在ARC中,没有类可以覆盖release方法,也没有调用它的必要。ARC会通过直接使用objc_release来优化调用过程。而对于retain也是同样的方法。ARC会调用objc_retain来取代保留消息。

2. ARC优化器

虽然前端编译器听起来很厉害的样子,但代码中有时仍会出现几个对retain和release的重复调用。ARC优化器负责移除多余的retain和release语句,确保生成的代码运行速度高于手动引用计数的代码。

若有更多见解,请评论!

相关文章

  • 37-ARC的工作原理

    什么是ARC Automatic Reference Counting,自动引用计数,即ARC,可以说是WWDC2...

  • this 的工作原理

    this 的工作原理 JavaScript 有一套完全不同于其它语言的对 this 的处理机制。 在五种不同的情况...

  • Spark核心编程:Spark基本工作原理与RDD

    Spark核心编程:Spark基本工作原理与RDD Spark基本工作原理 画图讲解Spark的基本工作原理1、分...

  • 工作原理

    1、结构 Mybatis底层还是采用原生JDBC来操作数据库的,只不过通过一些处理器封装了这些过程: SqlSes...

  • 工作原理

    PHP工作原理 当在Web站点中融入PHP功能后,将发生以下事情: 1、用户向浏览器地址栏输入网址,默认页面的扩展...

  • 工作原理

    我们聆听、我们思考 我们培养打破桎梏的视角 我们擅于在平凡中发现美的存在 我们不作表面文章或是故弄玄虚 我们不会夸...

  • 工作原理

    《金线》 1.本书在“金字塔原理”的基础上,总结了“金线原理”:解决一切问题的实质就是追求以假设为驱动、以事实为基...

  • 《ASP.NET编程》01-ASP.NET编程概述

    一、 静态/动态网页 工作原理 1,静态网页工作原理: 2,动态网页工作原理: 二、ASP: ASP.NET 前...

  • Memcached工作原理

    Memcached工作原理 @[memcached] [toc] 1. Memcached软件工作原理 memca...

  • 几种机械工具的工作原理

    1.我们经常使用的摇头风扇的工作原理图 2.点钞机的工作原理图 3.缝纫机的工作原理图 4.手雷的工作原理图 5....

网友评论

本文标题:37-ARC的工作原理

本文链接:https://www.haomeiwen.com/subject/afdpcttx.html