半瓶思路,
不就是重复调用么?写个作用域外的变量不就好了,递减、叠加都可以。。。。
然鹅,可以用用更漂亮的写法,参数中定义重发次数count,函数内部执行前先判断count,在函数中重新调用时将count-1。
上代码!!!
- (void)downloadFileRetryingNumberOfTimes:(NSUInteger)ntimes success:(void (^)(id responseObject))success failure:(void (^)(NSError *error))failure { if (ntimes <= 0) { if (failure) { NSError *error = ...; failure(error); } } else { [self getPath:@"/path/to/file" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) { if (success) { success(...); } } failure:^(AFHTTPRequestOperation *operation, NSError *error) { [self downloadFileRetryingNumberOfTimes:ntimes - 1 success:success failure:failure]; }]; } }
上边是别人写的,其实还可以给参数count默认值,默认执行一次
比如这样定义:
class func post(param : Param?=nil,url: String,ntimes:Int=3)
思路来源:https://github.com/AFNetworking/AFNetworking/issues/393