代码之家  ›  专栏  ›  技术社区  ›  Friso

如何在Delphi XE7中关闭autorefcount?

  •  3
  • Friso  · 技术社区  · 9 年前

    我正在研究的系统已经制作了自己的参考计数单元,但它与德尔福的系统相冲突。我已经尝试使它与编译器条件兼容,但我仍然遇到了几个bug,我认为这可能是因为ARC仍在运行。

    1 回复  |  直到 9 年前
        1
  •  10
  •   Dalija Prasnikar    9 年前

    很简单,您不能在支持Delphi编译器ARC的平台(当前为Android和iOS)上全局关闭它。

    然而,ARC可以在特定引用的代码中绕过。

    ARC编译器介绍 [weak] [unsafe] 属性。

    [弱] 可以用于标记不参与引用计数的弱引用,但仍需要至少有一个强引用才能使对象保持活动状态。弱引用也设置为 nil 当物体被破坏时。

    [不安全] 可以用于完全关闭特定引用的引用计数,但这意味着在极少数情况下使用,它将禁止您混合计数的引用和未计数的引用,从而导致非常有限的利用率。

    此外,参数声明为 const var 不进行引用计数。

    ARC in Delphi mobile compilers