видите, мы работаем с экземпляром класса NSCoder практически так же, как и со словарем. Разница заключается в том, что вместо словарного метода setValue: forKey: мы пользуемся encodeObject: forKey:, а вместо словарного метода objectForKey: задействуем decodeObjectForKey:. Отличия от словарей минимальны.
Итак, с этим классом все понятно. Теперь реализуем механизм архивации и деархивации, пользуясь двумя вышеупомянутыми классами. Мы собираемся сначала инстанцировать объект типа Person, затем заархивировать его, убрать из памяти, потом считать обратно из файла и убедиться, что разархивированное значение совпадает с тем, которое мы изначально записали в класс. Все это мы реализуем в делегате приложения, поскольку там это будет сделать проще всего:
Итак, при архивации просто используется метод класса archiveRootObject: toFile, относящийся к классу NSKeyedArchiver. Этот метод принимает объект и файл, в котором должно быть сохранено содержимое. Все просто. А если нужно разархивировать информацию? Не сложнее архивации. Нам просто нужно найти путь к заархивированному файлу, передать его методу класса unarchiveObjectWithFile:, относящемуся к классу NSKeyedUnarchiver. Всю остальную работу класс выполнит за вас.
См. также
Раздел 12.1.
Глава 13. Камера и библиотека фотографий
13.0. Введение
Большинство устройств с операционной системой iOS, допустим iPhone, оборудованы камерами. У самого нового iPhone две камеры, у других моделей может быть всего по одной. Некоторые устройства с операционной системой iOS не оснащены камерами. Класс UIImagePickerController позволяет программисту отображать для пользователя привычный интерфейс Camera и предлагать сделать снимок или записать видео. Фотографии или видеозаписи, выполненные с помощью класса UIImagePickerController, становятся доступны программисту.
В этой главе будет рассказано, как обеспечить пользователю возможность снимать фотографии и записывать видео прямо из приложения, получать доступ к фотографиям и видео, размещенным в библиотеке фотографий (Photo Library) на устройстве с iOS, например на iPod touch или iPad.
В симуляторе iOS интерфейс Camera не поддерживается. Все приложения, в которых требуется применять этот интерфейс, следует тестировать и отлаживать на настоящем устройстве с iOS, которое оборудовано камерой.