我正在重试在发生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。
提前致谢!
答案 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 ];
});
谢谢你。