我在下面包含了我的代码。如果没有 wifi 和蜂窝服务,应用程序会冻结。如果我完全关闭蜂窝网络,它会打印“无法访问”,这是预期的,并且应用程序运行正常。但是如果没有服务并且蜂窝网络处于打开状态(例如,在地铁中),它会显示“通过蜂窝网络可达" 而且我无法与应用程序交互。它只是被冻结了,即使该代码在后台线程上也是如此。
let reachability = Reachability()
@IBAction func rateButtonAction(_ sender: Any) {
if #available(iOS 10.3, *) {
DispatchQueue.global(qos: .background).async {
if self.reachability?.connection == .wifi {
print("Reachable via WiFi")
SKStoreReviewController.requestReview()
} else if self.reachability?.connection == .cellular {
print("Reachable via Cellular")
SKStoreReviewController.requestReview()
} else if self.reachability?.connection == .none {
print("Not reachable")
} else {
print("Not reachable")
}
}
} else {
print("Rate didn't work")
}
}