奇怪(错误?)与Xcode 7 / iOS 9 b5与dataWithContentsOfURL

时间:2015-08-09 10:49:26

标签: ios xcode7 ios9

我有一部分代码在所有iOS版本上按预期工作,但在iOS 9上没有:

NSData *response = [NSData dataWithContentsOfURL: [NSURL URLWithString: url] options:NSDataReadingUncached error:&error];

这是一个简单的json文本。

我收到了这个错误:

  

错误Domain = NSCocoaErrorDomain Code = 256“无法打开文件”xxx.php“。”的UserInfo = {NSURL = enter image description here}

如何将此网址解释为文件?回复=无......

感谢。

2 个答案:

答案 0 :(得分:10)

技术上是因为iOS9中NSURLSession网络的变化。 要解决您的问题,您需要转到app的info.plist,NSAppTransportSecurity [Dictionary]需要将密钥NSAllowsArbitraryLoads [Boolean]设置为YES或使用https调用URL。

您可以在http://devstreaming.apple.com/videos/wwdc/2015/711y6zlz0ll/711/711_networking_with_nsurlsession.pdf?dl=1

中查看有关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()