0

我使用以下代码以 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 的标准方法吗?谢谢。

4

1 回答 1

1

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

(第二点,为什么要使用委托进行同步调用?如果在发布之前不取消设置,有时会出现奇怪的错误。)

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

另外,检查你的调用代码,就好像你每 5 秒调用一次,但是如果有 40 秒的超时,你可能会有点堆积(除非你在开始时停止计时器,然后在结束时将其重置为 5 秒代码)。

于 2013-09-19T09:57:43.167 回答