我发送请求并在收到响应时需要检查条件,然后导航到下一个屏幕,但是在收到响应之前检查这个条件。如何在收到回复后检查条件。提前谢谢。
答案 0 :(得分:0)
您使用的是NSURL Connection还是任何组件?
尝试使用NSURL Connection委托。看看这个链接:
http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSURLConnection_Class/Reference/Reference.html#//apple_ref/occ/cl/NSURLConnection。
我认为这两种方法中的任何一种都有效 - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data OR - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
答案 1 :(得分:0)
我会考虑使用ASI库。它比NSURLConnection更好用。
无论哪种方式,您都应该异步启动请求并将委托设置为self。
当你在委托回调中收到回复时,你可以继续到下一个屏幕。
对于ASI,你会做...
- (void)dorequest
{
NSURL *url = [NSURL URLWithString:@"http://allseeing-i.com"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDelegate:self];
[request startAsynchronous];
// Do no do anything else in this method.
// wait for the response to call your delegate method
}
- (void)requestFinished:(ASIHTTPRequest *)request
{
[self loadNextScreen];
}
NSURLConnection
会使用类似的代码。只需确保使用异步方法。
答案 2 :(得分:0)
我觉得这个问题没有得到妥善解释,因为它被误解了。我正在使用NSURLConnection,请求是异步请求,所以这不是问题。我需要一些代码才能在数据下载完成后执行。
我得到了答案;通过使用NSNotifications。在我的解析器类connectionDidFinishLoading:(NSURLConnection *)连接方法我发布通知。在我的viewcontroller类中,我添加了一个观察者,我执行所需的代码。
由于