2015-08-18 29 views
2

我正在尝试将谷歌搜索添加到我的文本框中。我已经知道了,所以我可以查找一个或两个变量,但在三次之后崩溃。我需要更改或添加什么才能使其工作?这里是我的代码...带有两个以上变量的Swift谷歌搜索

FUNC textFieldShouldReturn(文本框:的UITextField) - >布尔{ textField.resignFirstResponder()

var urlString: String = textField.text 
    var url = NSURL(string: urlString) 

    if (url != nil) { 
     url = NSURL(string: "http://www.google.com/search?q=\(urlString)") 
     var request = NSURLRequest(URL: url!) 
     self.webView.loadRequest(request) 
    } 
    if url?.scheme == nil { 
     var spaces = urlString.rangeOfString(" ") 
     var urlStrings = urlString.stringByReplacingCharactersInRange(spaces!, withString: "+") 
     var url = NSURL(string: "http://www.google.com/search?q=\(urlStrings)") 
     var request = NSURLRequest(URL: url!) 
     self.webView.loadRequest(request) 
    } 
    return false 
} 
+0

欢迎来到SO。请在此发布所有相关信息,错误消息,调用堆栈等。 –

回答

1

spaces = urlString.rangeOfString(" ")只用找到字符串中的第一个空间,所以字符串有更多它只会用+而不是其他的替换第一个空格。你需要使用更多的东西:

urlStrings = urlString.stringByReplacingOccurrencesOfString(" ", withString: "+", options: NSStringCompareOptions.LiteralSearch, range: nil) 

在这里,我们用“+”替换每个“”字符的出现。因此,要总结:

var urlString: String = textField.text 
urlString = urlString.stringByReplacingOccurrencesOfString(" ", withString: "+", options: NSStringCompareOptions.LiteralSearch, range: nil) 
let url = NSURL(string: "http://www.google.com/search?q=\(urlString)") 
let request = NSURLRequest(URL: url!) 
self.webView.loadRequest(request) 

你还需要确保你为了去除多余的空格(如双空格,或者在开头和结尾空格)修剪urlString第一。请参阅here了解如何操作!

+0

谢谢!这工作完美! –