NSData contentsOfUrl returns 无
NSData contentsOfUrl returns nil
我在 Whosebug 上发现了几个类似的问题,但 none 解决了我的问题。
我正在尝试从 url 获取图像。以下是我的做法:
let url = NSURL(string: "http://pic3.zhimg.com/8161ba9638273e0fb1a0201789d22d8e_m.jpg")
let data = NSData(contentsOfURL: url!)
let image = UIImage(data: data!)
但是我收到一条错误消息,告诉我 data
为零。
我该如何解决这个问题?谢谢。
更新
以下是错误的一些屏幕截图:
我认为你首先应该创建一个有弹性的代码。
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
}
}
}
这可能是 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>
我在 Whosebug 上发现了几个类似的问题,但 none 解决了我的问题。
我正在尝试从 url 获取图像。以下是我的做法:
let url = NSURL(string: "http://pic3.zhimg.com/8161ba9638273e0fb1a0201789d22d8e_m.jpg")
let data = NSData(contentsOfURL: url!)
let image = UIImage(data: data!)
但是我收到一条错误消息,告诉我 data
为零。
我该如何解决这个问题?谢谢。
更新
以下是错误的一些屏幕截图:
我认为你首先应该创建一个有弹性的代码。
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
}
}
}
这可能是 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>