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