Обнуление слабых ссылок в 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, слабые ссылки вообще не могут использоваться в этих ОС.