繁体   English   中英

NSData contentsOfUrl返回nil

[英]NSData contentsOfUrl returns nil

我在StackOverflow上发现了几个类似的问题,但没有一个能解决我的问题。

我想从网址获取图片。 我是这样做的:

let url = NSURL(string: "http://pic3.zhimg.com/8161ba9638273e0fb1a0201789d22d8e_m.jpg")
let data = NSData(contentsOfURL: url!)
let image = UIImage(data: data!)

但我收到一个错误,告诉我data是零。

我怎么解决这个问题? 谢谢。

UPDATE

以下是错误的一些屏幕截图:

在此输入图像描述 在此输入图像描述

这可能是Apple的新应用程序传输安全性拒绝非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>

我认为你应该创建一个有弹性的代码。

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
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM