2015-09-28 74 views
0

我想從php服務器中快速獲取帶有url的數據。但是,當我使用NSData(contentsOfURL:url!)我得到零,我的應用程序打破了錯誤:'致命錯誤:意外地發現零,同時解開一個可選值'。這是因爲我的服務器服務暫時不可用如何在Swift中控制從NSData(contentsOfURL:url)返回的nil值?

我的代碼是:

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我顯示一條消息,但我的應用程序沒有關閉?

謝謝!

回答

0

避免使用強制展開值與!,安全地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終止。

相關問題