延迟iOS中的http重试请求任务

时间:2015-08-12 21:13:58

标签: ios objective-c asynchronous nsurlconnection delay

我正在重试在发生4XX错误时发送HTTP异步请求。我在NSURLConnection委托方法中这样做:

      - (void)connectionDidFinishLoading:(NSURLConnection *)connection
        {

         if(httpResponseStatusCode == 404) 
         { 
             [MyModel doGet:[connection currentRequest].URL delegate:self timeout:HTTP_TIMEOUT ]; 
         }    
        }

但是这个请求太早被触发(在服务器对我有响应之前)。我应该如何添加延迟,以便在延迟2秒后触发请求?

我尝试使用performSelector延迟但是在执行时我得到了EXC_BAD_ACCESS。

提前致谢!

1 个答案:

答案 0 :(得分:1)

尝试dispatch_after延迟请求调用。这是片段

    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(5.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ 
        [MyModel doGet:[connection currentRequest].URL delegate:self timeout:HTTP_TIMEOUT ]; 
    });

谢谢你。