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下的属性关键字

     
  • 相关阅读:
    使用Docfx生成项目文档
    代码性能优化-----减少数据库读取次数
    代码性能优化-----前端页面异步实现
    代码性能优化——task
    SVN批处理
    性能优化
    provider 设计模式
    【IObit】五大软件激活码( Advanced Systemcare....)
    关于 facebook
    关于 Google 与 Chrome
  • 原文地址:https://www.cnblogs.com/chenzq12/p/6214646.html
Copyright © 2011-2022 走看看