我使用以下代码以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吗?感谢。
答案 0 :(得分:1)
你检查了应用程序的内存使用情况吗?你每隔5秒调用一次这种方式是否有可能意味着你要分配的对象没有被释放,所以你只是内存不足?我假设你正在使用NSTimer?
(在第二个注释中,为什么要使用委托进行同步调用?如果在发布之前没有取消它们,有时会出现奇怪的错误。)
就标准方法而言,我唯一建议的是你在后台线程上执行此操作,然后使用通知来更新UI。
另外,检查你的呼叫代码就像你每隔5秒调用一次,但是如果超时40秒,你可能会堆积一些东西(除非你在开始时停止计时器,然后将它重置为5秒)这段代码的结尾)。