簡體   English   中英

NSData contentsOfURL返回Nil嗎?

[英]NSData contentsOfURL Returns Nil?

我有以下代碼

import Foundation

let url = NSURL(string: copiedURL)
let data = NSData(contentsOfURL: url!)
print("\(data)")
let image2 = UIImage(data: data!)

當我生成並運行時,出現以下錯誤fatal error: unexpectedly found nil while unwrapping an Optional value引用fatal error: unexpectedly found nil while unwrapping an Optional value

let image2 = UIImage(data: data!)

我試圖用以下內容修改我的Info.plist

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

但是錯誤仍然存​​在。 我可以嘗試其他解決方案嗎?

這里有幾種可能性。

  1. 復制的網址未正確轉換為NSURL
  2. 未將NSURL轉換為NSData
  3. 圖像無法加載數據

請嘗試以下操作:

if let url = NSURL(string: copiedURL) {
    print(url)
    if let data = NSData(contentsOfURL: url) {
        print(data)
        let image2 = UIImage(data: data)
    }
}

強制解包(!),而是使用guardif let解包,從而能夠處理nil條件,這幾乎不是一個好主意。

有關如何正確下載圖像的信息,請參閱: 從Swift上的URL加載/下載圖像

嘗試以下代碼:

if let url = NSURL(string: copiedURL) {
   if let data = NSData(contentsOfURL: url) {
   print("\(data)")
   let image2 = UIImage(data: data)
   }
}

如果copiedURL具有有效的圖像,您將獲得它,否則,您的應用程序將不會崩潰。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM