- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个方法可以使用 AFNetworking 调用 enqueueBatchOfHTTPRequestOperations 从 Web 服务器将文件列表下载到 iPad。每隔一段时间我就会遇到一个失败的操作(通常是在文件较大时)。过去,我单独下载每个文件,然后简单地再次调用该操作直到达到一定的重试次数。
我重构了代码以使用 enqueueBatchOfHTTPRequestOperations。这很好用,但我不知道如何获得有关“特定”操作失败的通知,而且我不知道如果它们失败了如何将它们重新添加到队列中。
这是我用来下载“n”个文件的代码:
NSMutableArray *operationsArray = [[NSMutableArray alloc]init];
for (MINPageDefinition *currPage in [[MINPageStore sharedInstance] pageArray])
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *serverLibraryURL = [defaults objectForKey:kRootURL];
serverLibraryURL = [serverLibraryURL stringByAppendingPathComponent:kPageDefinitionsDirectory];
serverLibraryURL = [serverLibraryURL stringByAppendingPathComponent:currPage.pageImageName];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:serverLibraryURL]];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
operation.outputStream = [NSOutputStream outputStreamToFileAtPath:currPage.pageImageURL append:NO];
[operationsArray addObject:operation];
}
if ([operationsArray count] > 0)
{
AFHTTPClient *client = [[AFHTTPClient alloc] initWithBaseURL:[NSURL URLWithString:@""]];
void (^progressBlock)(NSUInteger numberOfCompletedOperations, NSUInteger totalNumberOfOperations) = ^(NSUInteger numberOfCompletedOperations, NSUInteger totalNumberOfOperations) {
NSLog(@"%d proccesses completed out of %d", numberOfCompletedOperations, totalNumberOfOperations);
};
void (^completionBlock)(NSArray *operations) = ^(NSArray *operations) {
NSLog(@"All operations completed");
};
[client enqueueBatchOfHTTPRequestOperations:operationsArray
progressBlock:progressBlock
completionBlock:completionBlock];
}
之前,我有一个执行操作的方法。失败时,失败 block 将递归调用自身。如果操作失败,我如何修改此代码以最多重试“n”次?
最佳答案
检查下面的代码@justLearningAgain
[[WfServices sharedClient] GET:kGetAddress parameters:dicParam success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"RESPONSE ::: %@",responseObject);
}failure:^(AFHTTPRequestOperation *operation, NSError *error) {
}];
+ (WfServices *)sharedClient
{
static WfServices * _sharedClient = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_sharedClient = [[WfServices alloc] initWithBaseURL:[NSURL URLWithString:kWFBaseURLString]];
});
return _sharedClient;
}
关于iphone - 如何使用 AFNetworking 中的 enqueueBatchOfHTTPRequestOperations 在操作失败时重新添加操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14205687/
在初始化 AFHTTPClient 的共享实例后,我有一个 setReachabilityStatusChangeBlock 代码块,然后我有一个 enqueueBatchOfHTTPRequestO
我正在尝试使用异步操作请求,但有时操作请求因请求超时而失败。我怎样才能形成我的 block ,以便在所有操作完成失败或完成但没有超时时重新发送超时操作并执行一些操作。 我真的需要解决这个问题,非常感谢
我使用这个 AFNetworking 方法一次启动多个请求: - (void)enqueueBatchOfHTTPRequestOperations:(NSArray *)operations
我有一个方法可以使用 AFNetworking 调用 enqueueBatchOfHTTPRequestOperations 从 Web 服务器将文件列表下载到 iPad。每隔一段时间我就会遇到一个失
我的应用程序需要从网络获取一些图像,但我希望用户能够取消此下载(如果没有连接,或者速度太慢,或者没有)。在任何情况下,应用程序界面都不应该被“卡住”。因此,我使用 AFHTTPClient 和 enq
我是一名优秀的程序员,十分优秀!