Что такое новый шаблон для освобождения себя с автоматическим подсчетом ссылок?

Используя метод NSObject -(id)awakeAfterUsingCoder:(NSCoder *)decoderв качестве примера, в документации сказано:

Позволяет объекту после декодирования заменить другой объект для себя. Например, объект, представляющий шрифт, может после декодируется, освобождает себя и возвращает существующий объект, имеющий то же описание шрифта, что и само. Таким образом, избыточные объекты могут быть устранено.

Обычно вы должны сделать

[self release];
return substitutedObject;

С ARC вы должны пропустить эту строку. Не будет ли это утечки? Или я должен просто доверять объекту NSCoder, чтобы освободить исходный объект для меня? Если да, то почему вы должны явно освобождать себя с кодом, отличным от -ARC?

Я не думаю, что self = nilявляется правильным в свете того, что документация компилятора говорит о себе:http://clang.llvm.org/docs/AutomaticReferenceCounting.html#misc.self

7
задан justin 22 April 2012 в 06:51
поделиться