Как отключить автоучет в Delphi XE7?


Система, над которой я работаю, создала свою собственную единицу подсчета ref, но она конфликтует с Delphi. Я пытался сделать его совместимым с условиями компилятора, но все равно наткнулся на несколько ошибок, которые, как мне кажется, могут быть вызваны тем, что ARC все еще включен.

1 3

1 ответ:

Просто, вы не можете глобально отключить Delphi compiler ARC на платформах, где он поддерживается (в настоящее время Android и iOS).

Однако, дуга может быть обойден в код для конкретной ссылки.

Компиляторы ARC вводят атрибуты [weak] и [unsafe].

[weak] может использоваться для маркировки слабых ссылок, которые не участвуют в подсчете ссылок, но вам все равно потребуется иметь по крайней мере одну сильную ссылку, чтобы сохранить объект живым. Слабые ссылки также устанавливаются в nil, когда объект уничтожен.

[unsafe] может быть использован для полного поворота подсчета ссылок для конкретной ссылки, но он предназначен для использования в редких случаях, и он запретит вам смешивать подсчитанные и несчитанные ссылки, что приведет к очень ограниченному использованию.

Также не учитываются параметры, объявленные как const и var.

ARC в мобильных компиляторах Delphi