如何在不崩溃的情况下不断获得Http响应?

时间:2013-09-19 09:32:51

标签: iphone ios objective-c asiformdatarequest

我使用以下代码以5秒的间隔连续调用API:

NSURL *url=[NSURL URLWithString:@"any url"];

ASIFormDataRequest *request=[[ASIFormDataRequest alloc] initWithURL:url];

[request setRequestMethod:@"POST"];
[request setDelegate:self];
[request addRequestHeader:@"Accept" value:@"application/json"];
    [request addPostValue:app.userName forKey:@"username"];
[request addPostValue:app.token forKey:@"token"];
    [request setTimeOutSeconds:40];
[request startSynchronous];
    NSError *error = [request error];
if (!error)
{ //sucesss
    } "

我遇到的问题是大约15-20分钟后,应用程序因访问错误而崩溃。我启用了僵尸对象,但我没有在控制台上收到任何消息。我做错了什么,或者你能告诉我一个标准的方法来连续呼叫api吗?感谢。

1 个答案:

答案 0 :(得分:1)

你检查了应用程序的内存使用情况吗?你每隔5秒调用一次这种方式是否有可能意味着你要分配的对象没有被释放,所以你只是内存不足?我假设你正在使用NSTimer?

(在第二个注释中,为什么要使用委托进行同步调用?如果在发布之前没有取消它们,有时会出现奇怪的错误。)

就标准方法而言,我唯一建议的是你在后台线程上执行此操作,然后使用通知来更新UI。

另外,检查你的呼叫代码就像你每隔5秒调用一次,但是如果超时40秒,你可能会堆积一些东西(除非你在开始时停止计时器,然后将它重置为5秒)这段代码的结尾)。