[英]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.