Как реализовано поведение слабого указателя ARC при обнулении?

Я изучаю ARC. А теперь об обнулении слабого указателя. ОК, все особенности разобрались. Семантика слабой ссылки такая же, как и слабая ссылка системы GC, но вы знаете, Objective-C не использует GC (кроме особого случая), поэтому я не могу понять, как это работает.

Я немного сложный парень, поэтому мне нужно знать основной принцип реализации, чтобы принять эту функцию к использованию. Но проблема в том, что очень сложно найти документ, который описывает принцип слабого обнуления указателя: (

ИМО, единственный способ сделать эту работу - отслеживать и сохранять все указатели, ссылающиеся на себя во время выполнения, и устанавливать их все nil , когда его счетчик ссылок становится 0 . Но это выглядит слишком тяжелым и глупым. Я считаю, что в реальной реализации ARC используется гораздо лучшее решение.

Вы можете помочь мне найти документацию? Или прямое описание было бы лучше!

12
задан Eonil 11 December 2013 в 11:44
поделиться