在回复后检查条件

时间:2011-04-07 15:23:27

标签: iphone

我发送请求并在收到响应时需要检查条件,然后导航到下一个屏幕,但是在收到响应之前检查这个条件。如何在收到回复后检查条件。提前谢谢。

3 个答案:

答案 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类中,我添加了一个观察者,我执行所需的代码。

如需更多帮助,请参阅:http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSNotification_Class/Reference/Reference.html

由于