我试图传递一个预先附加的字符串作为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)
}
}
Run Code Online (Sandbox Code Playgroud)
您应该将方法参数名称更改为func textFieldDidUpdate(sender: UITextField),使用guard来解包您的可选textfield文本属性,并使用查询允许的字符集将%escapes也添加到您的字符串中.
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))
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
639 次 |
| 最近记录: |