2016-05-22 3 views
0

Я пытаюсь загрузить файл из UIImagePickerController. Лучше ли загружать изображение из памяти или сохранять его на диск, а затем загружать на S3Есть ли разница между загрузкой из файла в память UIImage?

Который потребляет меньше ресурсов? В настоящее время более слабые устройства, такие как iPhone 5, пытаются загрузить файл.

+1

BTW, ради эффективности, если вы загружаете изображение с полным разрешением, обязательно получите «NSData» для базового актива напрямую и загрузить его, а не получать «UIImage», а затем преобразовать его в «NSData» с 'UIImageJPEGRepresentation' или' UIImagePNGRпредпредставление'. Или, если вам не требуется полное разрешение, измените его размер (и/или запросите меньший 'targetSize') и загрузите его, поскольку это может быть значительно меньше. Лично я бы предложил сохранить его на диск и загрузить с него, чтобы свести к минимуму, как долго вы сохраняете данные полного разрешения в памяти (esp при загрузке нескольких файлов). – Rob

ответ

1

Ваша проблема в том, что более старые устройства имеют более низкую скорость сотовой связи. Не должно быть существенной разницы в скоростях WiFi между iPhone 5 и более новыми моделями.

Поскольку проблема с восходящей линией связи является проблемой, не имеет значения, используете ли вы свое изображение из памяти или диска. Перенос изображения из памяти на диск, а затем обратно в память перед загрузкой не имеет преимуществ, за исключением того факта, что только части изображения возможно хранятся в памяти, ожидающей загрузки.

+0

А я вижу. Иногда я видел, что приложение прекращалось из-за давления памяти. Я задавался вопросом, как такие приложения, как WhatsApp и instagram, справились с этой проблемой настолько эффективно ... –

+1

Прекращение давления памяти - это другая проблема. Я бы сохранил изображение в памяти. Это основное внимание вашего пользователя. Уверен, что есть другие изображения, ресурсы, которые могут быть временно сохранены на диск или очищены, чтобы облегчить эту проблему. –