Я пытаюсь изучить автоматический подсчет ссылок в iOS 5. Теперь первая часть этого вопроса должна быть простой:
-
Правильно ли, что я НЕ должен писать явные release-свойства в моем dealloc при использовании ARC? В других слова, верно ли, что следующее: НЕ нуждается в явном dealloc?
@interface MyClass : NSObject @property (strong, nonatomic) NSObject* myProperty; @end @implementation MyClass @synthesize myProperty; @end
-
Мой следующий и более важный вопрос исходит из строки в Переход к заметкам о выпуске ARC:
Вы не должны (действительно, не можете) освобождать переменные экземпляра, но вам может потребоваться вызвать [self setDelegate: nil] для системных классов и другого кода, который не скомпилирован с использованием ARC.
Это задает вопрос: как узнать, какие системные классы не скомпилированы с помощью ARC? Когда я должен создавать свой собственный dealloc и явно устанавливать сильно сохраняющие свойства на nil? Должен ли я предположить, что все классы инфраструктуры NS и UI, используемые в свойствах, требуют явного deallocs?
Существует много информации о SO и в других местах о методах выпуска поддержки ivar для поддержки свойств при использовании ручного отслеживания ссылок, но относительно немного об этом при использовании ARC.