Error POSIX 12 ("No se puede asignar memoria") al cargar archivos desde un iPhone

Estoy trabajando en una aplicación para iPhone que implica cargar fotos completas desde la cámara (generalmente entre 1,5 y 2,0 MB cada una), así como sus miniaturas (mucho más pequeñas) en Amazon S3.

Las miniaturas siempre se cargan correctamente, peroa veces las imágenes completas no lo hacen, y cuando fallan, fallan con el código de error POSIX 12, también conocido como ENOMEM. Sin embargo, he agregado código de depuración para imprimir la cantidad de memoria libre cuando ocurre el error, y siempre hay bastante libre, generalmente más de 100 MB.

Además, el error aparece más a menudo cuando la carga se realiza a través de 3G y menos cuando se realiza a través de wifi, lo que parece extraño, ya que la solicitud no se descarga mucho y el archivo que se está cargando ya está en la memoria (también lo he intentado transmitirlo desde el disco sin ninguna mejora).

Intenté cargar el archivo usando NSURLConnection, las funciones de Foundation CFHTTP * y la biblioteca ASIHTTPRequest, pero independientemente, el error ocurre con la misma frecuencia. Aún más extraño, todo lo que mi Google ha revelado es que los usuarios finales a veces obtienen el código de error 12 de Safari; no he visto ningún desarrollador de iOS que lo mencione. Estoy trabajando con una base de código heredada, por lo que es posible que haya algo mal, pero ni siquiera estoy seguro de qué buscar. ¡Cualquier idea sería muy apreciada!

Respuestas a la pregunta(3)

Su respuesta a la pregunta