• ARC基本原理


    基本简介
    1. ARC是Automatic Reference Counting(自动引用计数器)的简称。
    2. ARC是ios5.0引入的新特性,完全消除手动管理内存的繁琐,编译器会自动在适合的代码里面插入适当的retain,release,autorelease的语句。我们不要再担心内存管理,因为编译器帮我们做了这一切。
    3. ARC是编译器的特性,并非运行时的特性,也不是其他编程语言中的垃圾回收器。因此自动管理和手动管理内存其实一样的,但是自动管理更加快速,因为编译器执行某些优化。
    基本原理
    1. ARC的规则就是只要对象没有强指针引用,就会被释放掉,换而言之 只要还有一个强引用指针变量指向对象,那么这个对象就会存在内存中。弱指针指向的对象,会被自动变成空指针(nil指针),从而不会引发野指针错误。
    基本使用
    1. ARC设置如下

      028B1D47-5AFC-4CD9-8996-663D6F5F4BBA.png
    2. ARC模式下 retain ,release,retainCount 是不能够调用的。
      例子1

      7F6ACD2D-DED5-497C-9ACF-912B1C3081F0.png

      例子2
      dealloc可以重写,但是不能用[super dealloc],编译器会报错。

    0725DA76-0AF9-4C60-B330-1C1F8378F363.png


    例子3


    941E4E52-DC62-423E-A81B-93EB5FD0CB3F.png

    DDD75C44-DCAA-4D68-83D3-4F8988BB4188.png


    例子4


    2C8CBF67-16E2-4119-A787-DCA77926608E.png

    4D0E2D6F-F1E8-4CC1-8155-69D2EFF69646.png


    例子5__weak弱指针


    7BA16564-2CAE-427D-AE63-84B9544AEDA3.png
    注意使用事项

    1.循环引用
    解决办法:一段用强引用,一段用弱引用。outlet的控件属性都是weak修饰,因为他们已经被父控件强引用。
    2.ARC只对OC对象的进行内存管理,对于CoreFundation的api使用,他的对象所有权没有移交给OC对象管理,都需要手动去释放。

    转载:http://www.jianshu.com/p/6ab1f1cd0bb1

  • 相关阅读:
    Python天天美味(17) open读写文件
    Linux服务器性能数据收集 Sysstat介绍
    招募Asp.net开发人员一名[上海]
    Python天天美味(21) httplib,smtplib
    Python天天美味(23) enumerate遍历数组
    试用IronPython
    Python天天美味(22) 拷贝对象(深拷贝deepcopy与浅拷贝copy)
    Python天天美味(13) struct.unpack
    Python天天美味(12) 条件判断的缩写
    分享Silverlight/WPF/Windows Phone一周学习导读(11月21日11月27日)
  • 原文地址:https://www.cnblogs.com/sunjianfei/p/5958997.html
Copyright © 2020-2023  润新知