0

我正在使用互联网可用性检查, NSURLConnection但它未能调用成功或错误块:

- (void)isNetworkAvailableWithCallBack:(SuccessCallback)successBlock onFailure:(FailureCallback)failureBlock   {
        NSURL *URL = [NSURL URLWithString:@"http://www.google.com/"];
        NSURLRequest *request = [NSURLRequest requestWithURL:URL];
        [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue new] completionHandler:^(NSURLResponse *response, NSData __unused *data, NSError *error){
            if (response != nil){
                NSLog(@"Connected");
                dispatch_async(dispatch_get_main_queue(), ^{
                    successBlock(YES);
                });
            } else {
                dispatch_async(dispatch_get_main_queue(), ^{
                    failureBlock(YES);
                });
                NSLog(@"Not Connected");
                [self presentError:error];

            }
        }];
    }

当应用程序处于前台或首次加载时,应用程序运行良好。当然,我的后台多任务处理已启用。当发生以下情况时,问题开始:

将应用程序发送到 BG。稍等片刻......该应用程序被iOS杀死。

当我的应用程序再次从后台转到前台时,会使用以下状态代码调用块:

Code=-1001

它是一个请求超时错误。但是为什么每当我的应用程序进入后台时都不会调用它(不是每次都发生,它工作正常)。

我的代码有什么问题吗?我如何处理这个。?

4

1 回答 1

0

您需要在功能中启用“项目后台模式”。

请参考附件截图

在此处输入图像描述

于 2015-05-27T07:11:41.120 回答