取消AFImageRequestOperation中的所有操作

时间:2013-08-04 16:37:32

标签: objective-c afnetworking nsoperation

我正在使用AFImageRequestOperation从我的服务器下载数百个jpg。

NSURLRequest *request = [NSURLRequest requestWithURL:theURL cachePolicy:NSURLCacheStorageNotAllowed timeoutInterval:20];
AFImageRequestOperation *operation;
operation = [AFImageRequestOperation imageRequestOperationWithRequest:request
                                                imageProcessingBlock:nil
                                                success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) {}
                                                failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) {}
                                                ];

operation.outputStream = [NSOutputStream outputStreamToFileAtPath:[[paths objectAtIndex:0] stringByAppendingPathComponent:picture] append:NO];
[downloadQueue addOperation:operation];

如果我现在要取消正在进行的下载,请执行[downloadQueue cancelAllOperations]

使用我之前使用的AFNetworking的早期版本(今年早些时候),这种方法很完美但是最近的版本我得到了这个:

ERROR [http://myImageURL] -- The operation couldn’t be completed. (NSURLErrorDomain error -999.)

用于所有待处理的操作。 我现在必须做一些额外的事吗?

1 个答案:

答案 0 :(得分:0)

NSURLErrorDomain中,该错误代码定义如下:

kCFURLErrorCancelled = -999

......这是有道理的,因为操作确实被取消了。这不是错误,而是预期的行为。更改可能是对AFNetworking的文档更改,也可能是iOS版本之间NSURLConnection中未记录的更改。