zoukankan      html  css  js  c++  java
  • ARC基本概念

    1.什么是ARC

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

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

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

    2.ARC的注意点和优点

    • ARC的注意点

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

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

    3.ARC的判断原则

    • ARC的判断原则

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

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

      被__weak修饰的指针

    __weak  Person *p = [[Person alloc] init];
    • 注意:当使用ARC的时候,暂时忘记“引用计数器”,因为判断标准变了。
  • 相关阅读:
    运算符的优先级
    % 取余运算 取模运算
    Java运算符,关系运算符
    自增自减 a++,++a,a--,--a
    Java运算符,算术运算符
    启用div作为编辑器 添加contentEditalbe = “true”,如何让在Html中特殊字符不被转义
    一个合格前端必看的书籍
    JQuery中eq()和get()的区别
    div,contenteditable编辑器之ctrl+enter换行,enter发送
    Angularjs 源码
  • 原文地址:https://www.cnblogs.com/xufengyuan/p/6591239.html
Copyright © 2011-2022 走看看