В моем приложении я должен хранить и загружать несколько фотографий на сервер, используя стандартную библиотеку iOS UIImagePickerController. В настоящее время я храню работаю на хранение UIImagePickerControllerReferenceURL для библиотеки фото:Лучшая практика для хранения и загрузки нескольких изображений из ImagePicker (iOS)
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
if let assetURL = info["UIImagePickerControllerReferenceURL"] as? URL {
assetArray.append(assetURL) //assetArray globally stored as 'fileprivate var assetArray = [URL]()'
}
}
Однако, я только что прочитал где-то, что камера не дает ключ «UIImagePickerControllerReferenceURL». Таким образом, этот метод может не работать, когда я общаюсь с частью камеры, поэтому я переосмысливаю свою логику.
Я использую KingFisher, поэтому в настоящее время изучаю, можно ли кэшировать изображения с использованием этой структуры, но я не уверен. Я также читаю, что могу захватить URL-адрес изображения камеры, используя API-интерфейс Photo, который я попытаюсь сделать дальше. Если бы я мог, я захватил бы URL-адрес фотографии, сделанной камерой, и добавлю ее в assetArray.
Если бы это была единая загрузка фотографий, это было бы относительно просто, но поскольку я не хочу препятствовать производительности приложения, сохраняя большой массив данных/изображений, эта задача стала сложной.
Это лучше, чтобы продолжить то, что я делаю:
1) Захват URL, каждое изображение я хочу, чтобы загрузить и хранить их в массив URL. Перед загрузкой на сервер, захватите данные в формате .png каждого URL-адреса и загрузите изображения на сервер
2) Загрузите фактические изображения где-нибудь, поэтому при загрузке на сервер изображения уже будут (не нужно преобразовывать от URL -> изображения). Проблема здесь в том, что многие изображения могут помешать производительности приложения, если это не сделано правильно.
или
3) Некоторые другие методы
Любая помощь будет высоко оценили. Спасибо!