DevPrep

Все темы › Objective-C

NSCoding, archiving

Middle PRO

Суть

Archiving — сериализация графа объектов в NSData и обратно с помощью NSKeyedArchiver/NSKeyedUnarchiver. Чтобы класс мог быть заархивирован, он реализует протокол NSCoding:

NSCoder — абстрактный класс «кодировщика»; keyed-архиватор пишет пары ключ → значение, что позволяет менять набор полей между версиями (старые ключи просто игнорируются, новых нет — decodeObjectForKey: вернёт nil). Так хранятся UIView в storyboard/XIB, state restoration, NSUserDefaults для нестандартных типов, кэши на диске.

Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.

Полный ответ — в DevPrep

Потренируйтесь перед собеседованием

В DevPrep эти ответы превращаются в задачи на минуту: что напечатает код, найди баг, пробное собеседование. По задаче в день.

Скачать DevPrep в App Store