对于ios开发的学习过程中,各种机制以及工作原理的理解非常有助于开发人员的工作。在遇到ARC工作的时候,也必须要熟悉掌握这是一个怎样的工作原理。先来跟大家介绍什么ARC的工作原理。
手动存储器管理的机理大家应该已经非常清楚了,简单来说,只要遵循以下三点就可以在手动存储器管理中避免绝大部分的麻烦:
如果需要持有一个对象,那么对其发送retain 如果之后不再使用该对象,那么需要对其发送release(或者autorealse) 每一次对retain,alloc或者new的调用,需要对应一次release或autorealse调用
初学者可能仅仅只是知道这些规则,但是在实际使用时难免犯错。但是当开发者经常使用手动引用计数 Manual Referecen Counting(MRC)的话,这些规则将逐渐变为本能。你会发现少一个release的代码怎么看怎么别扭,从而减少或者杜绝存储器管理的错误。可以说MRC的规则非常简单,但是同时也非常容易出错。往往很小的错误就将引起crash或者OOM之类的严重问题。
在MRC的年代里,为了避免不小心忘写release,Xcode提供了一个很实用的小工具来帮助可能存在的代码问题(Xcode3里默认快捷键Shift+A?不记得了),可以指出潜在的存储器泄露或者过多释放。而ARC在此基础上更进一步:ARC是Objective-C编译器的特性,而不是运行时特性或者垃圾回收机制,ARC所做的只不过是在代码编译时为你自动在合适的位置插入release或autorelease,就如同之前MRC时你所做的那样。
所以说,反而ARC机制也拥有和MRC一样的效率,并且ARC通过在部分优化和在最合适的地方完成引用计数的维护,所以反倒ARC具有更快的效率,也广受人们的欢迎。
正确理解ios开发ARC工作原理 来自淘豆网m.daumloan.com转载请标明出处.