我有一个使用 iOS、todayExtension 和 watchOS 作为目标的应用程序。
在新的 iOS 13 发布之前,一切都运行良好,那一周我在 iPhone 上下载了 iOS 13 测试版,在手表上下载了 watchOS 6。然后,突然我的应用程序停止在手表上运行。当我将它进行调试时,我看到我的 URLSession 请求都没有完成。有什么巨大的变化吗?
class func verifyInternet(errorHandler:@escaping (String) -> (), completionHandler:@escaping (JSON) -> ()) {
let myUrl = URL(string: "https://google.com/")
var request = URLRequest(url:myUrl!)
request.httpMethod = "GET";
request.httpBody = nil
request.cachePolicy = URLRequest.CachePolicy.reloadIgnoringLocalCacheData
let task = URLSession.shared.dataTask(with: request as URLRequest, completionHandler: {
data, response, error in
if error != nil
{
errorHandler(error.debugDescription)
return
}
if response.debugDescription.contains("Status Code: 200") {
completionHandler("connection ok")
return
}
if response != nil, let jsonString = JSON(parseJSON: response!.description) as? JSON {
//convert the JSON to raw NSData
do {
let json = try jsonString //JSON(data: dataFromString)
if json.dictionary?.keys.first?.contains("error") ?? false {
errorHandler(json.dictionary?.values.first?.stringValue ?? "error")
}
completionHandler(json)
} catch {
print("Error \(error)")
}
}
})
task.resume()
}
这实际上是我在 OS 5 上运行良好而在 OS 6(模拟器和手表)上运行良好的一些代码(我已经尝试将选项标记为“独立于 iPhone 运行”)。我会在这里粘贴我得到的错误,但是当我在 Watch 模拟器上运行我的代码时,调试器没有打印任何东西:)。