我在下面包含了我的代码。如果没有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")
}
}