在函数 return 之前等待后台线程完成

Waiting for a background thread to complete before function return

我尝试创建 return 互联网状态为 Bool:

的函数
func isConnectedToNetwork()->Bool{
    var InternetStatus = Bool()
    RealReachability.sharedInstance().reachabilityWithBlock { (status:ReachabilityStatus) in
        switch status {
        case .RealStatusNotReachable:
            InternetStatus = false
        default:
            InternetStatus = true

        }
    }
   return InternetStatus
}

但我有一个问题,RealReachability.sharedInstance().reachabilityWithBlock {} 在后台线程中工作,并且在后台线程完成之前运行 return。

如何在函数之前等待后台线程结果return?

别等了,说吧。

使用异步任务完成时调用的完成处理程序

func isConnectedToNetwork(completion:(Bool -> Void)) {
    RealReachability.sharedInstance().reachabilityWithBlock { (status:ReachabilityStatus) in
        switch status {
        case .RealStatusNotReachable:
            completion(false)
        default:
            completion(true)
        }
    }
}

并称之为

isConnectedToNetwork { success in
  print(success)
  // do something with the success value
}