我有一部分代码在所有iOS版本上按预期工作,但在iOS 9上没有:
NSData *response = [NSData dataWithContentsOfURL: [NSURL URLWithString: url] options:NSDataReadingUncached error:&error];
这是一个简单的json文本。
我收到了这个错误:
错误Domain = NSCocoaErrorDomain Code = 256“无法打开文件”xxx.php“。”的UserInfo = {NSURL = }
如何将此网址解释为文件?回复=无......
感谢。
答案 0 :(得分:10)
技术上是因为iOS9中NSURLSession网络的变化。 要解决您的问题,您需要转到app的info.plist,NSAppTransportSecurity [Dictionary]需要将密钥NSAllowsArbitraryLoads [Boolean]设置为YES或使用https调用URL。
中查看有关iOS9中NSURLSession网络更改的更多信息答案 1 :(得分:0)
经过3个小时的调试后,我通过使用异步NSMutableURLRequest完全避免了这个错误,我也观察到它比同步NSData快。
let requestURL: NSURL = NSURL(string: url)!
let urlRequest: NSMutableURLRequest = NSMutableURLRequest(URL: requestURL)
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithRequest(urlRequest) {
(data, response, error) -> Void in
if error == nil {
var response = UIImage(data:data!)
} else {
NSLog("Fail")
}
}
task.resume()