zoukankan      html  css  js  c++  java
  • ARC

    ARC 自动引用计数

    •ARC自动引用计数(automatic reference counting),提供自动管理内存的功能
    •不需要手动管理引用计数,不需要也不允许retain、release、autorelease。
    •注意版本是支持iOS4(不支持弱引用)、iOS5以上
    •ARC是自iOS 5之后增加的新特性,完全消除了手动管理内存的烦琐,编译器会自动在适当的地方插入适当的retain、release、autorelease语句。你不再需要担心内存管理,因为编译器为你处理了一切
     
    基本原理
    •1  规则
    •ARC 的规则非常简单:只要还有一个强指针变量指向对象,对象就会保持在内存中

     2  强指针和弱指针

    默认所有实例变量和局部变量都是Strong指针

    •弱指针指向的对象被回收后,弱指针会自动变为nil指针,不会引发野指针错误
      

    使用注意

    •不能调用release、retain、autorelease、retainCount
    •可以重写dealloc,但是不能调用[super dealloc]
    •@property : 想长期拥有某个对象,应该用strong,其他对象用weak
    •其他基本数据类型依然用assign
    •两端互相引用时,一端用strong、一端用weak

    ARC和非ARC的混合编译

    •不同于XCode4可以在创建工程时选择关闭ARC,XCode5以后在创建的工程是默认开启ARC,没有可以关闭ARC的选项。
    •如果需要对特定文件开启或关闭ARC,可以在工程选项中选择Targets -> Compile Phases -> Compile Sources,在里面找到对应文件,添加flag:
    •打开ARC:-fobjc-arc
    •关闭ARC:-fno-objc-arc

     

     ARC下的属性关键字

     
  • 相关阅读:
    设计模式-装饰器模式
    自定义 RestTemplate 异常处理 (转)
    Jackson 高级应用
    Jackson 的 基本用法
    Jackson转换为Collection、Array
    Jackson中处理map中的null key 或者null value 及实体字段中的null value
    sed
    MySQL server has gone away 异常
    nl命令
    线程池
  • 原文地址:https://www.cnblogs.com/chenzq12/p/6214646.html
Copyright © 2011-2022 走看看