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

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

我想从 php 服务器获取 swift 中 url 的数据。但是当我使用 NSData(contentsOfURL: url!) 时,我得到了 nil,我的应用程序因错误而中断:'fatal error: unexpectedly found nil while unwrapping an Optional value'。这是因为我的服务器服务暂时不可用

我的代码是:

  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

如何控制我的 link 返回 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.

杀死