我正在开发一个iPhone应用程序,涉及上传相机拍摄的完整照片(通常每张照片大小在1.5到2.0 MB之间)以及它们的缩略图(小得多)到Amazon S3。
缩略图总是成功上传,但是完整的图片有时候不会上传,并且当它们失败时,它们会出现POSIX错误代码12,即ENOMEM。然而,我已经添加了调试代码来打印错误发生时的可用内存量,而且通常有很多空闲内存,通常超过100 MB。
此外,当上传通过3G进行时,错误更容易出现,而当上传通过WiFi进行时,则较少出现。这似乎有些奇怪,因为请求并没有下载很多的数据,并且要上传的文件已经在内存中(我还尝试从磁盘流式传输,但没有改善)。
我已经尝试使用NSURLConnection、Foundation CFHTTP*函数和ASIHTTPRequest库来上传文件,但无论如何,错误的发生频率都是一样的。更奇怪的是,我的所有谷歌搜索都只显示Safari有时候会出现错误代码12,我没有看到任何iOS开发人员提到过这个问题。我正在使用一个继承的代码库,所以有可能出现问题,但我甚至不知道该寻找什么。非常感谢任何见解!