通知在没有与Reachability连接的情况下进行了哪些调用

时间:2015-12-15 14:00:22

标签: ios swift reachability

我需要在应用启动时设置一些初始数据。我有一个名为loadData()的方法,它在其中进行了多次调用以确定互联网连接。我的代码看起来像这样:

func setup() {
  if reachability.isReachable() {
     // If there is connection, we setup the initial data
     loadData()
  } else {
    //If there is no connection, wait for a notification 
    NSNotificationCenter.defaultCenter().addObserver(self, selector: "reachabilityChanged:", name: ReachabilityChangedNotification, object: nil)
    do {
        try reachability.startNotifier()
    } catch {
        print("Unable to start notifier")
    }
 }
}

func loadData() {
  loadA()
  loadB()
  loadC()
  ..
  loadZ()
}

func reachabilityChanged(note: NSNotification) {
  if reachability!.isReachable() {
    loadData()
    reachability!.stopNotifier()
   }
}

这让我可以在启动loadData()之前处理没有连接的情况。但是,如果连接丢失(例如,在loadC()期间),那么我将无法添加通知,以便稍后可以加载丢失的数据。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

这取决于您的加载功能内部。由于互联网连接要求,我认为您正在使用与服务器的一些通信。
在这种情况下,您可以检查响应代码,并创建一个警告您的类的委托,如果出现问题。 (之后你可以回想起失败的功能)