NSUserDefaults
не просто большой грузовик, на который вы можете выбросить все, что захотите. Это серия трубок, которые относятся только к определенным типам.
Что вы можете сэкономить до NSUserDefaults
:
NSData
NSString
NSNumber
NSDate
NSArray
NSDictionary
Если вы пытаетесь сохранить что-либо еще до NSUserDefaults
, вам, как правило, необходимо архивировать его на объект NSData
и хранить его (имея в виду, что вам нужно будет его разблокировать позже, когда вам это понадобится).
Есть два способа превратить объект UIImage
в данные. Существуют функции для создания PNG-представления изображения или JPEG-изображения изображения.
Для PNG:
let imageData = UIImagePNGRepresentation(yourImage)
Для JPEG:
let imageData = UIImageJPEGRepresentation(yourImage, 1.0)
где второй аргумент является CGFloat
, представляющий качество сжатия, с 0.0
являющейся самым низким качеством и 1.0
быть самым высоким качеством , Имейте в виду, что если вы используете JPEG, каждый раз, когда вы сжимаете и распаковываете, если вы используете что-либо, кроме 1.0
, вы со временем ухудшаете качество. PNG без потерь, поэтому вы не будете деградировать изображение.
Чтобы получить изображение обратно из объекта данных, есть init
метод UIImage
сделать это:
let yourImage = UIImage(data:imageData)
Этот метод не будет работать независимо от того, как вы превратили UIImage
объект данных.
Как сохранить его в объект NSData затем разгружает его? –
Переменная UIImage –
Как преобразовать ее обратно в UIImage? –