zoukankan      html  css  js  c++  java
  • Objective-C内存管理机制

    Objective-C内存管理机制分成两种:MRC和ARC

    (1)MRC (Manual Reference Counting)

    • 当前系统默认都是采用ARC,如果想使用MRC需要在build settings里把Objective-C Automatic Reference Counting设置成No。
    • 通过类对象的retainCount属性可以查询该类的引用计数
    • 通过类对象的retain方法可以将引用计数加一
    • 通过类对象的release方法可以将引用计数减一
    • 当引用计数为0时,系统自动调用dealloc析构函数,不要在代码里显式调用
    • autorelease和@autoreleasepool配合使用,当对象超出@autoreleasepool范围的时候,引用计数会被减一。

      @autoreleasepool{

         //如果加上[A retain] 就不会被释放

         //[A retain]

        A* a = [ [ [A alloc] init] autorelease];

      }

    (2)ARC(Automatic Reference Counting)

    • 在ARC模式下,autorelease,retain,release,retainCount
    • 在ARC模式下,在delloc函数中不能写[super delloc]
    • ARC由编译器添加retain和release
  • 相关阅读:
    python第22天作业
    python之常见模块(一)
    python之包和文件目录规范
    python第20天作业
    python之模块
    python之匿名函数
    Python算法之二分法
    间间间间简陋版书城系统
    python第十九天作业
    4-1作业
  • 原文地址:https://www.cnblogs.com/jacky1982/p/7524103.html
Copyright © 2011-2022 走看看