Xcode 8.2.1,全新的iOS 10.2 + WatchKit 3.1 app。
在Watch模拟器上执行网络请求时,我遇到了极长的响应时间问题(没有要测试的物理设备)。在极少数情况下,响应时间可以在5-6秒到45秒(!)之间。
我已尝试使用普通NSURLSession
和Alamofire
,如willActivate()
InterfaceController
中所示:
// URLSession
let url = URL(string: "https://httpbin.org/get")!
let request = URLRequest(url: url)
let configuration = URLSessionConfiguration.default
let session = URLSession(configuration: configuration)
let task = session.dataTask(with: request) { (data, response, error) in
print(response)
}
task.resume()
// Alamofire
Alamofire.request("https://httpbin.org/get").responseJSON { response in
print(response.response) // HTTP URL response
}
在iOS模拟器上进行测试时,完全相同的代码按预期工作,响应时间最短(例如viewDidLoad()
中的ViewController
)。
我不相信这是一个网络/ Wifi问题,因为我已经在不同地点的两台不同的计算机上进行了测试。
我知道Apple建议在Watch上使用后台配置的会话,但这是因为系统可能会提前终止该应用程序,这是处理响应的唯一方式,或者是它?
也许这是一个已知的Watch模拟器问题?