我正在开发一个客户端并与Web服务通信的应用程序。我正在检查与Reachability课程的互联网连接。如果它可用,我设置一个bool为YES,默认为NO。
在我的应用程序委托的didFinishLaunchingWithOptions
方法中,我获取一个单例对象并添加它以观察网络状态更改,因此它可以快速将bool变为YES。
当我的第一个viewDidLoad
时,我尝试从网络服务getToken
,所以我检查internetConnection
是否可用并且它总是返回NO,因为我的对象在我试图获取后收到通知一个令牌。我不认为这是一个好主意,使用延迟表演者,所以我该如何处理这种情况。提前谢谢..
答案 0 :(得分:1)
在您的情况下,我使用ASIHTTPRequest
库来检查请求是否到达服务器。 ASIHTTPRequest提供了很多方法,包括这个方法:
-(void)requestFinished:(ASIHTTPRequest *)request
要测试连接,您可以执行以下操作:
-(void)requestFinished:(ASIHTTPRequest *)request{
if(request.responseStatusCode==200)
{
//successfull connection, do what you need
}
else {
//failed request sent, display the correspondant error
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Your app name"
message:@"Unexpected error"
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
[alert release];
}
}