Вы не должны сохранять большие объемы данных в основных данных, инженер Apple, рассказал мне эту маленькую хитрость в последнем WWDC:
Вы можете использовать свойство «Позволяет внешнее запоминающее устройство»:
Делая это, насколько я знаю, ваше изображение будет храниться где-то в файловой системе, а внутри основных данных будет сохранена ссылка на ваше изображение в файловой системе. каждый раз, когда вы запрашиваете изображение, основные данные автоматически извлекают изображение из файловой системы.
Чтобы сохранить изображение как NSData вы можете сделать:
let image = UIImage(named: "YourImage")
let imageData = NSData(data: UIImageJPEGRepresentation(image, 1.0))
managedObject?.setValue(imageData, forKey: "YourKey")
Помните, что 1,0 в UIImageJPEGRepresentatio означает, что вы используете самое лучшее качество и поэтому изображение будет большим и тяжелым:
Качество полученного изображения JPEG, выраженное как значение от 0,0 до 1.0. Значение 0.0 представляет максимальное сжатие (или самое низкое качество ), а значение 1.0 представляет наименьшее сжатие (или лучшее качество ).
Значение сжатия 1.0 может быть очень дорогим по размеру. Также стоит учесть «UIImagePNGRпредставление». – zaph
Я знаю это - он явно спрашивает, как его хранить, кроме того, что он должен прочитать о том, как использовать свойства и т. Д. Ваша оценка ниже также действительна @zaph. – Valentin
Пожалуйста, учтите мой комментарий как дополнение, никоим образом не жалуясь на вопрос или не сводя к минимуму ответ. – zaph