gpt4 book ai didi

swift - 检查服务器是否在线

转载 作者:行者123 更新时间:2023-11-30 10:03:54 25 4
gpt4 key购买 nike

我需要一种方法来检查服务器是否在线。理想情况下,它只会返回 true/false。

我已经尝试过这个:

    class func serverIsOnline() -> Bool{
let session = NSURLSession.sharedSession()
let urlString = "http://myserver.com"
let url = NSURL(string: urlString)
let request = NSURLRequest(URL: url!, cachePolicy: .ReloadIgnoringLocalAndRemoteCacheData, timeoutInterval: 3.0)

let dataTask = session.dataTaskWithRequest(request) { (data:NSData?, response:NSURLResponse?, error:NSError?) -> Void in

if let httpResponse = response as? NSHTTPURLResponse {
if httpResponse.statusCode == 200 {
//server online
return true
} else {
//server offline
return false
}
}
}
dataTask.resume()
}

当我尝试返回 true/false 时,出现以下错误:

Unexpected non-void return value in void function

如何修改此函数以便我可以检查我的服务器是否在线并返回 true/false ?

最佳答案

你的方法有问题

  1. 它是异步的
  2. 您的闭包无法返回任何内容,它是 Void

要修复此问题,您必须使调用同步,并将响应存储在 Bool 中,以便在闭包完成后可以返回它。使 dataTaskWithRequestHandler 同步,例如 this 。在顶部声明一个变量,如 reachable 并在闭包内将其设置为 true 或 false,然后在任务完成后返回它。

关于swift - 检查服务器是否在线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37122421/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com