Что ты выпускаешь? NSKeyedUnarchiver или разархивированный объект?
Если вы выпустите NSKeyedUnarchiver или нет, это зависит от того, как вы его создали. Это следует обычным правилам. Если вы используете alloc
+ initForReadingWithData
, вы должны отпустить, если вы используете unarchiveObjectWithData
или unarchiveObjectWithFile
- вы не должны.
Что касается результата decodeObjectForKey
, то он также следует обычному правилу, согласно которому метод возвращает автоматически выпущенный объект, и вы не должны освобождать его, если вы явно не сохранили его.
Относительно finishDecoding
: ожидается, что вы вызовете его явно до того, как объект NSKeyedUnarchiver будет выпущен. Вы не должны использовать unarchiver после этой точки, но объект все еще жив.