NSData contentsOfUrl返回nil
我在StackOverflow上发现了几个类似的问题,但是没有一个解决我的问题。
我正在尝试从url获取图片。 以下是我如何做到这一点:
let url = NSURL(string: "http://pic3.zhimg.com/8161ba9638273e0fb1a0201789d22d8e_m.jpg") let data = NSData(contentsOfURL: url!) let image = UIImage(data: data!)
但是我得到一个错误,告诉我data
是零。
我该如何解决这个问题? 谢谢。
UPDATE
以下是错误的一些截图:
这可能是苹果新的应用程序传输安全拒绝非HTTPS请求的结果。 要解决这个问题,你需要修改你的应用的Info.plist
文件。 您可以为该特定域定义一个例外
<key>NSAppTransportSecurity</key> <dict> <key>NSExceptionDomains</key> <dict> <key>pic3.zhimg.com</key> <dict> <key>NSIncludesSubdomains</key> <true/> <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key> <true/> </dict> </dict> </dict>
或完全禁用ATS
<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict>
我认为你应该首先创build一个有弹性的代码。
if let url = NSURL(string: "http://pic3.zhimg.com/8161ba9638273e0fb1a0201789d22d8e_m.jpg") { if let data = NSData(contentsOfURL: url) { if let image = UIImage(data: data) { //Do something } } }