如何在Delphi XE7中关闭autorefcount?

时间:2015-03-13 09:44:35

标签: delphi delphi-xe7

我正在研究的系统已经制作了自己的引用计数单元,但它与Delphi相互冲突。我试图使它与编译条件兼容,但我仍然遇到了一些我认为可能因为ARC仍然存在而引起的错误。

1 个答案:

答案 0 :(得分:10)

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

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

ARC编译器引入[weak][unsafe]属性。

[weak]可用于标记不参与引用计数的弱引用,但您仍需要至少有一个强引用来保持对象存活。当对象被销毁时,弱引用也被设置为nil

[unsafe]可用于完全转换引用计数以供特定参考,但它意味着在极少数情况下使用,它将禁止您混合计数和非计数引用,导致使用非常有限。

此外,声明为constvar的参数不会被引用计数。

ARC in Delphi mobile compilers