簡體   English   中英

如何在Swift中控制從NSData(contentsOfURL:url)返回的nil值?

[英]How to control a nil value returned from NSData(contentsOfURL: url) in Swift?

我想從php服務器快速獲取帶有網址的數據。 但是,當我使用NSData(contentsOfURL:url!)時,得到零,並且我的應用程序因錯誤而中斷:“致命錯誤:在展開可選值時意外發現零”。 這是因為我的服務器服務暫時不可用

我的代碼是:

  let strURL: String = "http://domain.com/myphpfile.php?username="+userTF.text!+"&pass="+passTF.text!
    let url = NSURL(string: strURL)
    let dataURL = NSData(contentsOfURL: url!)  //Here return nil

如何控制我的鏈接何時返回nil我顯示一條消息但我的應用程序未關閉?

謝謝!

避免與!一起使用強制展開的值! ,安全地拆開包裝if let改為:

if let url = NSURL(string: strURL), let data = NSData(contentsOfURL: url) {
    // use `data` here
} else {
    print("something went wrong")
}

提示:無論如何都不要使用NSData contentsOfURL ,而應使用NSURLSession東西。 這是因為contentsOfURL在工作時會阻塞主線程,這會凍結UI,並可能導致該應用被iOS殺死。

暫無
暫無

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

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