我尝试创建将Internet状态恢复为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 {}
在后台线程中工作,函数在后台线程完成之前返回。
如何在函数返回之前等待后台线程结果?
答案 0 :(得分:3)
使用在异步任务完成时调用的完成处理程序
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
}