Обнуление слабых ссылок в ARC

Если мое чтение Mike Ash "Zeroing Weak References" writeup верно, слабые ссылки похожи на assign ссылки без ARC. Однако, если ссылочный объект освобождается, вместо получения "оборванного указателя" (что означает указатель, указывающий на освобожденный объект) указатель получает значение nil.

Правильно ли это, и это происходит с любым свойством, отмеченным weak или assign (когда ARC активен)?

Если это правильно, это устранит много SIGABRT.

Ответ 1

В основном это правильно, но свойства assign по-прежнему обрабатываются так же, как и когда-либо, но обнуляются только теги weak. Еще одно предостережение заключается в том, что обнуление слабых ссылок доступно только в Mac OS X ≥ 10.7 и iOS ≥ 5. В то время как остальная часть ARC была передана обратно в 10.6 и iOS 4, слабые ссылки вообще не могут использоваться в этих ОС.