Ios AFNetworking Error Domain=NSPOSIXErrorDomain代码=12“;操作无法’;不可能完成。无法分配内存

Ios AFNetworking Error Domain=NSPOSIXErrorDomain代码=12“;操作无法’;不可能完成。无法分配内存,ios,nsurl,nsurlrequest,afnetworking,Ios,Nsurl,Nsurlrequest,Afnetworking,我正在通过AFN网络向Rails服务器发送大量图像文件。在edge和3G上,有时会出现以下错误:错误域=NSPOSIXErrorDomain Code=12“操作无法完成。无法分配内存” 这是我用来发送文件的代码: 有办法解决这个问题吗 网上有些人建议,一个解决办法是流式传输文件。我还没有找到关于使用AFNetworking传输多个文件的教程。我该怎么做?图像有多大?你要送多少 我似乎找不到使用AFNetworking实现NSInputStream的简单方法,但有一件事你应该试试,那就是避免将大

我正在通过AFN网络向Rails服务器发送大量图像文件。在edge和3G上,有时会出现以下错误:错误域=NSPOSIXErrorDomain Code=12“操作无法完成。无法分配内存”

这是我用来发送文件的代码:

有办法解决这个问题吗


网上有些人建议,一个解决办法是流式传输文件。我还没有找到关于使用AFNetworking传输多个文件的教程。我该怎么做?

图像有多大?你要送多少

我似乎找不到使用
AFNetworking
实现
NSInputStream
的简单方法,但有一件事你应该试试,那就是避免将大对象放入自动释放池。当您在Inde for循环中创建大型NSData实例时,这些实例将进入自动释放池,只要循环持续,所有的内存就会一直存在。这是优化它的一种方法:

for (int i=0; i<[self.sImages count]; i++) {
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    NSData *imageData = UIImageJPEGRepresentation([self.sImages objectAtIndex:i], 0.7);
    [formData appendPartWithFileData:imageData name:@"pics[]" fileName:@"avatar.jpg" mimeType:@"image/jpeg"];
    pool drain];
}

for(inti=0;i我知道有人问这个问题已经有一段时间了,但在这件事上我只需要付出我的两分钱

在花了一周的大部分时间试图弄明白这件事之后,我现在的处境是:

  • 这个问题发生在一台运行iOS 5.1.1的旧iPhone4上
  • 似乎无法在运行相同iOS 5.1.1的iPhone4S上复制它
可能是因为手机硬件本身的网络故障,或者可能是因为需要限制带宽(或者只是NSURLConnection中的一个bug):

我本来会转移到ASIHTTPRequest,但它不再被维护,因此现在值得实施。也许我仍然应该尝试AFNetworking,但我真的开始认为这是一个已经在iOS中修复的问题(或者在我的情况下可能是一个劣质iPhone)

但我一生都找不到一个简单的解释

for (int i=0; i<[self.sImages count]; i++) {
    @autoreleasepool {
        NSData *imageData = UIImageJPEGRepresentation([self.sImages objectAtIndex:i], 0.7);
        [formData appendPartWithFileData:imageData name:@"pics[]" fileName:@"avatar.jpg" mimeType:@"image/jpeg"];
    }
}