ARC基本概念

1.什么是ARC

  • Automatic Reference Counting,自动引用计数,即ARC,能够说是WWDC2011和iOS5所引入 的最大的变革和最激动人心的变化。ARC是新的LLVM 3.0编译器的一项特性,使用ARC,能够说一 举解决了广大iOS开发者所憎恨的手动内存管理的麻烦。app

  • 手动管理内存, 能够简称MRC (Manual Reference Counting)
  • 在工程中使用ARC很是简单:只须要像往常那样编写代码,只不过永远不写retain,release和autorelease三个关键字就好~这是ARC的基本原则。优化

  • 当ARC开启时,编译器将自动在代码合适的地方插入retain, release和autorelease,而做为程序猿,彻底不须要担忧编译器会作错(除非开发者本身错用ARC了)。spa

2.ARC的注意点和优势

  • ARC的注意点指针

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

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

3.ARC的判断原则

  • ARC的判断原则对象

    • 只要还有一个强指针变量指向对象,对象就会保持在内存中
  • 强指针blog

    • 默认全部指针变量都是强指针
    • 被__strong修饰的指针
 Person *p1 = [[Person alloc] init];
 __strong  Person *p2 = [[Person alloc] init];
  • 弱指针

  被__weak修饰的指针内存

__weak  Person *p = [[Person alloc] init];
  • 注意:当使用ARC的时候,暂时忘记“引用计数器”,由于判断标准变了。
相关文章
相关标签/搜索