如何控制 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.
杀死
我想从 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.