UPDATE
Как указано в комментариях, UIImage
соответствует NSCoding
, так что вы можете просто закодировать его напрямую, например так:
[encoder encodeObject:image forKey:@"image"];
Это имеет то преимущество, что он (должен) хранить все свойства изображения, включая scale
и imageOrientation
, которые могут быть довольно важны для сохранения, если для них не установлены значения по умолчанию.
Однако, у него есть некоторые риски, о которых вы должны знать. Если изображение было загружено непосредственно из комплекта вашего приложения, архив будет содержать имя изображения, но не данные изображения. И если архив содержит данные изображения, он будет в формате PNG, в то время как вы можете предпочесть формат JPEG в зависимости от типа изображения, которое вы кодируете.
ORIGINAL
Используйте UIImagePNGRepresentation
или UIImageJPEGRepresentation
для преобразования UIImage
в NSData
, затем кодируйте NSData
:
[encoder encodeObject:UIImagePNGRepresentation(self.image) forKey:@"image"];
Чтобы декодировать изображение позже:
self.image = [UIImage imageWithData:[decoder decodeObjectForKey:@"image"]];