Edit: Другая ошибка, вероятно, заключается в том, что вы ищете объект для ключа "bild" в информационном словаре, который вы передали из контроллера средства выбора изображений. У него не будет такого ключа. Вы должны передать ключ UIImagePickerControllerOriginalImage
, чтобы получить вместо изображения.
-
Ты не выбрасываешь старое imageData
. Если ваша проблема заключается в большом потреблении памяти, вам придется покончить с данными изображения, поскольку вы постепенно уменьшаете изображение.
Кроме того, в любом случае изображение может быть слишком большим, чтобы уместиться в пределах 5000 байт. Ваш текущий код не обрабатывает это изящно. Со временем степень сжатия вырастет за пределы 1,0, и в этот момент функция, вероятно, выдаст исключение.
Я бы предложил изменить размер изображения, прежде чем пытаться сильно его сжать.
Независимо от того, как вы уменьшаете данные изображения, ваш текущий код сохраняет все старые копии до следующего слияния пула автоматического выпуска. Поскольку данные, возвращаемые из UIImageJPEGRepresentation
, автоматически высвобождаются, вы можете попробовать использовать встроенный пул автоматического выпуска вокруг каждой итерации цикла, чтобы немедленно истощить данные.