【问题标题】:Reference Counting ,ARC引用计数
【发布时间】:2016-11-21 05:57:45
【问题描述】:

当引用计数变为 0 时,对象是否会立即被解除分配,或者等到遇到释放方法(由 ARC 中的编译器自动插入)显式地进行解除分配?

【问题讨论】:

  • 调用release 以使引用计数变为0。
  • 认为引用计数会归零是错误的。当计数将变为零时,运行时的当前实现将调用dealloc,但实际上从未将其减为零。这实际上是相同的,但如果您四处寻找并试图了解潜在的行为,可能会令人困惑。

标签: objective-c swift automatic-ref-counting


【解决方案1】:

内存管理的整个问题是很难在只有一个明显的地方来释放对象的大型程序中创建。如果是这样的话,就根本不需要引用计数了!

每当进行或销毁引用时,编译器都会插入retainrelease 调用。当release 被调用时,引用计数递减。如果这样做计数达到 0,则调用deinit,并释放对象的内存。这是release 调用的全部内容。

【讨论】:

    猜你喜欢
    • 2012-10-04
    • 2014-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-18
    • 2015-09-24
    • 2015-11-01
    • 2017-09-10
    相关资源
    最近更新 更多