Сериализация (она же архивация и разархивирование) на самом деле довольно сложна, но степень, с которой Какао облегчает задачу, является довольно впечатляющим подвигом.
Как только вы настроите все так, чтобы UIImageView и все его свойства, которые вы хотите сохранить, соответствовали NSCoding
, все, что вам нужно сделать, чтобы сохранить объект:
NSData *dataToSave = [NSKeyedArchiver archivedDataWithRootObject:yourImageView];
А потом храните эти NSData где-нибудь. Затем, чтобы разархивировать объект,
UIImageView *restoredImageView = [NSKeyedUnarchiver unarchiveObjectWithData:dataToRestore];
после восстановления NSData откуда-то.
Что касается приведения всего в соответствие с NSCoding, UIImageView
соответствует NSCoding
, как и UIView
, поэтому между вашими UIImageView
, его подпредставлениями и их свойствами все, вероятно, соответствует NSCoding
, кроме фактический UIImage
. Для этого, если вы пользуетесь Google, вы можете найти множество категорий, которые люди сделали, чтобы он соответствовал NSCoding
, поэтому просто включите одну из них в ваш проект, и все будет в порядке.