В моем приложении я должен хранить и загружать несколько фотографий на сервер, используя стандартную библиотеку iOS UIImagePickerController. В настоящее время я продолжаю работать над сохранением UIImagePickerControllerReferenceURL для библиотеки фотографий:
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 фотографий, что я попытаюсь сделать дальше. Если бы я мог, я возьму URL-адрес фотографии, сделанной камерой, и добавлю ее в assetArray.
Если бы это была загрузка одной фотографии, это было бы относительно просто, но поскольку я не хочу снижать производительность приложения, сохраняя большой массив данных / изображений, эта задача стала сложной.
Лучше ли продолжать то, что я делаю:
1) Возьмите URL-адреса каждого изображения, которое я хочу загрузить, и сохраните их в массиве URL-адресов. Перед загрузкой на сервер возьмите данные каждого URL-адреса в формате .png и загрузите изображения на сервер.
2) Кэшируйте где-нибудь реальные изображения, чтобы при загрузке на сервер изображения уже были там (не нужно преобразовывать из URL -> изображение). Проблема заключается в том, что наличие большого количества изображений может снизить производительность приложения, если все сделано неправильно.
or
3) Другой метод
Любая помощь будет принята с благодарностью. Спасибо!