ios - NSData contentsOfUrl 返回 nil

标签 ios swift uiimage nsdata

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

我正在尝试从 url 获取图像。这是我的做法:

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

但是我收到一条错误消息,告诉我 data 为 nil。

我该如何解决这个问题?谢谢。

更新

以下是错误的一些截图:

enter image description here enter image description here

最佳答案

这可能是 Apple 的新应用程序传输安全性拒绝非 HTTPS 请求的结果。要解决此问题,您需要修改应用的 Info.plist 文件。您可以为该特定域定义一个异常(exception)

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

关于ios - NSData contentsOfUrl 返回 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32567710/

相关文章:

ios - 如何通过 xcode 对边距约束应用乘数?

swift - 在多个 UICollectionViewCell 之间传递数据

swift - 线程 1 : signal SIGABRT, 无法识别的选择器发送到实例

ios - Swift - 缓慢的 UITableView 滚动(从设备存储加载图像)

ios - Swift - 获取图像创建日期和位置

ios - 根据屏幕大小设置 UIImageView 宽度

iOS - CATransition 问题 : showing end image at start

ios - 对象未保存在 Parse-Server 上

iOS 7 及更高版本 : set status bar style per view controller

ios - 按比例调整 UIImage 的大小然后裁剪