#swift #uicollectionview #uiimage #plist
#swift #uicollectionview #uiimage #список
Вопрос:
Я ищу лучший способ сохранить и вызвать массив изображений. В настоящее время я сохраняю URL-адреса изображений в .plist
файле и загружаю в collectionView
, делая это в cellForItemAt
:
let imageURLString = arrayOfURLsFromPlist[indexPath.row]
let imageURL = URL(string: imageURLString)
let imageData = try? Data(contentsOf: imageURL!)
let image = UIImage(data: imageData!, scale: UIScreen.main.scale)
cell.image.image = image
Это работает, но загрузка занимает несколько секунд. Также происходит сбой при попытке загрузить файлы изображений большего размера. Я думаю, это потому, что он не загрузил данные изображения до того, как я попытаюсь создать из него изображение.
Каков наилучший способ сохранить пути к массиву изображений или данные изображения в plist и быстро загрузить их по мере необходимости? Мне нужно иметь возможность загружать массив изображений из одного plist
файла.
Похоже, Apple может мгновенно загружать всю нашу фотопленку. Как мне добиться такой производительности?
РЕДАКТИРОВАТЬ: URL для изображения находится только в каталоге documents.
Комментарии:
1. Эти URL указывают на местоположение на диске или на удаленное местоположение?
2. Извините, хорошее замечание, они находятся в каталоге documents
3. Если вы загружаете несколько больших изображений, произойдет сбой, потому что у вас заканчивается память.
4. @matt правильно, я ищу лучший способ загрузить изображения без сбоев. Нужно ли мне создавать эскизы с низким разрешением?
5. Да, вы можете использовать платформу ImageIO для этого.