Iphone 如何在不崩溃的情况下连续获取Http响应?
我使用以下代码以5秒的间隔连续调用API:Iphone 如何在不崩溃的情况下连续获取Http响应?,iphone,ios,objective-c,asiformdatarequest,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:@
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的标准方法吗?谢谢。您检查过应用程序的内存使用情况吗?您每5秒调用一次的方式是否可能意味着您正在alloc initing的对象没有被释放,所以您的内存不足?我猜你在用NSTimer (另一个注意事项是,为什么要在同步调用中使用委托?如果在释放前不取消设置,有时可能会出现奇怪的错误。) 就标准方法而言,我唯一建议您在后台线程上执行此操作,然后使用通知更新UI
另外,检查您的呼叫代码,就好像您每5秒呼叫一次一样,但如果超时40秒,您可能会将事情堆积起来一点(除非您在开始时停止计时器,然后在此代码结束时将其重置为5秒)。Xcode的分析器将指出它检测到的任何错误。这应该是你的出发点。按Cmd-Shift-B在您的项目上运行分析器。@B我使用Cmd+Shift+B进行了分析,但没有显示任何内存问题。.感谢您的回复。.是的,我正在使用计时器。.以及如何检查应用程序的内存使用情况??请查看仪器。不要在Xcode的“产品”菜单上“运行”,而是尝试“配置文件”。Xcode可以让你在应用程序运行时直观地看到各种有用的调试信息。