gpt4 book ai didi

swift - 如何使用 swift 4 测试 iPhone 与互联网的连接?

转载 作者:搜寻专家 更新时间:2023-11-01 06:15:04 26 4
gpt4 key购买 nike

对于 Swift 4/xcode:
我已经在互联网上搜索过这个问题的解决方案,但我还没有找到涵盖所有基础的明确、全面的答案。 Stack 上有几个在一定程度上回答了这个问题,包括快速的具体答案,例如 theseAshleyMills Reachability ,但很多都是旧的,不全面。
1. 我想要检查internet 连接 的方法,而不仅仅是 wifi 连接。一些在线方法仅检查是否连接到 Wi-Fi,但不确认是否可以通过 wifi 上网。我想要一种在检测到互联网连接时返回 true 的方法。
2. 对于蜂窝数据使用,此方法必须返回 true。是的,Wi-Fi 可以提供互联网连接,但数据也可以。如果提供蜂窝/wifi 互联网中的一个或两个,此方法需要足够全面才能返回 true。
最后,一个注意事项。事实上,网上没有一个完整的快速答案来检查所有的框,这让我想知道我对这个问题的处理方法是否在更一般的意义上是不正确的。我的应用程序需要从数据库加载数据,这就是它需要互联网连接的原因。对于当今流行的应用程序来说,这是一件极其普遍的事情。应用程序不会因尝试在没有互联网连接的情况下加载数据而崩溃。我认为他们所做的(这是这个问题的基础)是这样的:

if doesHaveInternetConnection{
//run loading data functions
}else{
//don't run loading data functions
}

这不是完成的方式吗?如果不是,解决这个问题的更好方法是什么?

最佳答案

Here是发出网络请求时的 URLError 列表。在列表中,有一个名为 notConnectedToInternet 的枚举值。当您发出网络请求失败时,请查看错误代码以确定是由于没有连接还是其他原因造成的。

或者,您可以在您的服务器上托管一个health-check 端点。在发出任何请求之前,请向此端点发出请求。如果请求成功,您可以放心,互联网连接正常。不过,我强烈建议您选择第一个选项。

示例

注意:下面的代码在 Swift 3 中。

URLSession.shared.dataTask(with: *URLRequest*) { (data, response, error) -> Void in
if error != nil {
if let e = error as? URLError, e.code == .notConnectedToInternet {
//Not connected to internet
} else {
//Some other error
}
} else {
//The request was successful
}
}.resume()

关于swift - 如何使用 swift 4 测试 iPhone 与互联网的连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47047438/

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