Здравствуйте! Есть массив изображений хранящийся в Core Data, у каждого объекта свое количество изображений, как создавать динамичное количество UIImageView под каждую картинку? Например есть какой то текст и под ним буду отображаться свое количество каких-либо изображений.
var imgArray = [UIImage]();
var CDataArray = NSMutableArray();
for img in imgArray{
let data : NSData = NSData(data: UIImagePNGRepresentation(img))
CDataArray.addObject(data);
}
//convert the Array to NSData
//you can save this in core data
var coreDataObject = NSKeyedArchiver.archivedDataWithRootObject(CDataArray);
//extract:
if let mySavedData = NSKeyedUnarchiver.unarchiveObjectWithData(coreDataObject) as? NSArray{
//extract data..
}
Не очень, так как Kingfisher загружает картинки на диск, нет потребности хранить их в Core Data, вместо этого можно хранить только ссылки на эти картинки, и потом с помощью этих ссылок доставить картинки с диска с помощью того же Kingfisher
Антон Горб: но информация в кэше хранится же не долговечно, например перезагрузив устройство - там уже не будет фотографий. Мне надо долговечное хранение.
Можно хранить изображения в пользовательской директории, они не удалятся после перезагрузки устройства, а путь к изображению хранить в CoreData. Я предпочитаю хранения изображений на диске потому что могут возникнуть проблемы при миграции базы данных, но если проект маленький и ты не будешь менять структуру БД, то в принципе можешь хранить в CoreData так тоже делают.