致命错误:意外地发现零,而解包一个可选值(不能强制非可选types的string的解包值)
我想传递一个预先附加的string作为URL请求,我不断收到错误: fatal error: unexpectedly found nil while unwrapping an Optional value
这个错误指向了这一行: let searchTerm = "http://google.com/#q="+textField.text!
ViewController.swift
func textFieldDidUpdate(textField: UITextField) { if (textField.text!.rangeOfCharacterFromSet(NSCharacterSet.whitespaceCharacterSet()) != nil) { self.webView.hidden = false let searchTerm = "http://google.com/#q="+textField.text! let request = NSURLRequest(URL: NSURL(string: searchTerm)!) self.webView.loadRequest(request) } }
您应该将方法参数名称更改为func textFieldDidUpdate(sender: UITextField)
,使用guard来打开可选的textfield文本属性,并使用查询允许的字符集将百分号转义符也添加到您的string中。
func textFieldDidUpdate(sender: UITextField) { guard let text = sender.text, query = text.stringByAddingPercentEncodingWithAllowedCharacters(.URLQueryAllowedCharacterSet()), url = NSURL(string: "https://google.com/#q=\(query)") else { return } webView.hidden = false webView.loadRequest(NSURLRequest(URL: url)) }