2015-01-12 1 views
2

Какова временная связь между выполнением dealloc и точкой, где слабые ссылки разбиты и где записи удаляются из NSMapTable?Временная связь между `dealloc` и нарушением слабых ссылок [Cocoa]

В частности, могу ли я быть уверенным, что когда dealloc начнет выполнение, нет сильных ссылок, оставшихся с точки зрения приложения, и что никакие новые сильные ссылки не могут быть получены (кроме, может быть, путем копирования self во время исполнение dealloc)?

+1

Я бы очень ожидал, так что да, но я не могу сказать, что видел это, зарегистрированное Apple. – Droppy

+0

Я провел некоторое тестирование, и кажется, что все сильные и слабые ссылки нарушаются к моменту достижения dealloc – Alex

ответ

0

Да, вы можете быть уверены.

Объяснение ясно указано в this other answer.

Суть его в том, что разрешение слабой ссылки часто выполняется неявно через низкоуровневый API, который учитывает, началось ли освобождение для экземпляра, на который указывает ссылка.

 Смежные вопросы

  • Нет связанных вопросов^_^