Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何检查Internet连接或加载本地文件?_Ios - Fatal编程技术网

Ios 如何检查Internet连接或加载本地文件?

Ios 如何检查Internet连接或加载本地文件?,ios,Ios,我有一个应用程序,它通过应用程序代理调用同步引擎。同步引擎从web服务中获取数据,并对其进行解析,然后将其放入核心数据库中 您需要的单个控制器调用核心数据库的fetch以显示数据 我想添加检查Internet连接的功能。我是否应该在应用程序代理中检查互联网连接,如果有一个调用同步引擎,否则如果没有。。。我该怎么办,让它空着 If (Internet) { //call sync engine } else { //do nothing } 你试过可达性吗?它的工作原理如下: [[NSNoti

我有一个应用程序,它通过应用程序代理调用同步引擎。同步引擎从web服务中获取数据,并对其进行解析,然后将其放入核心数据库中

您需要的单个控制器调用核心数据库的fetch以显示数据

我想添加检查Internet连接的功能。我是否应该在应用程序代理中检查互联网连接,如果有一个调用同步引擎,否则如果没有。。。我该怎么办,让它空着

If (Internet) {
//call sync engine
} else { 
//do nothing
}

你试过可达性吗?它的工作原理如下:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(networkChanged:) name:kReachabilityChangedNotification object:nil];

online = [Reachability reachabilityForInternetConnection];
[online startNotifier];

- (void)networkChanged:(NSNotification *)notification {

  NetworkStatus remoteHostStatus = [online currentReachabilityStatus];

  if(remoteHostStatus == NotReachable) { 
      //use local file
  }
  else if (remoteHostStatus == ReachableViaWiFiNetwork) { 
      //use remote file
  }
  else if (remoteHostStatus == ReachableViaCarrierDataNetwork) { 
      //use remote file
  }
}

要检查连接性,有两个选项:

  • 使用类。易于使用,简单但不兼容ARC
  • 使用替代苹果的第三方类。这很好。电弧兼容

  • 是的,我正在使用可达性。但我的问题是如何处理使用本地文件而不是web获取的文件。@marciokoko请参见上面编辑的答案。当您未连接到internet时,只需使用本地文件。是的,我使用的是可达性。但我的问题是如何处理使用本地文件而不是web获取的文件。如果您将本地文件和web获取的文件构造为相同的结构,则只需对“可达性”进行条件检查。然后可以从该文件填充模型对象。