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

Delay the http retry request task in iOS

我正在尝试在出现 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。

提前致谢!

尝试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 ]; 
    });

谢谢。