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