Я изучаю ARC. А теперь об обнулении слабого указателя. ОК, все особенности разобрались. Семантика слабой ссылки такая же, как и слабая ссылка системы GC, но вы знаете, Objective-C не использует GC (кроме особого случая), поэтому я не могу понять, как это работает.
Я немного сложный парень, поэтому мне нужно знать основной принцип реализации, чтобы принять эту функцию к использованию. Но проблема в том, что очень сложно найти документ, который описывает принцип слабого обнуления указателя: (
ИМО, единственный способ сделать эту работу - отслеживать и сохранять все указатели, ссылающиеся на себя во время выполнения, и устанавливать их все nil
, когда его счетчик ссылок становится 0
. Но это выглядит слишком тяжелым и глупым. Я считаю, что в реальной реализации ARC используется гораздо лучшее решение.
Вы можете помочь мне найти документацию? Или прямое описание было бы лучше!