Ios 在展开可选值WKWebView get parameters时意外发现nil

Ios 在展开可选值WKWebView get parameters时意外发现nil,ios,swift,wkwebview,Ios,Swift,Wkwebview,我在WKWebView上工作,当我加载一个没有像这样的参数的url时,它工作得很好 func loadAddress(lat:Double,lng:Double){ let requestURL = NSURL(string:"http://url.com/dev2/billboard/geo") let request = NSURLRequest(url: requestURL as! URL) webview.load(request as URLRequest)

我在WKWebView上工作,当我加载一个没有像这样的参数的url时,它工作得很好

func loadAddress(lat:Double,lng:Double){
    let requestURL = NSURL(string:"http://url.com/dev2/billboard/geo")
    let request = NSURLRequest(url: requestURL as! URL)
    webview.load(request as URLRequest)
}
但我想发送用户的位置和get参数,如下所示

func loadAddress(lat:Double,lng:Double){
    let requestURL = NSURL(string:"http://url.com/dev2/billboard/geo/\(lat)/\(lng)")
    let request = NSURLRequest(url: requestURL as! URL)
    webview.load(request as URLRequest)
}
它显示了这个错误:

致命错误:在展开可选值时意外发现nil 2017-02-02 16:43:36.645898像素[5112:1996136]致命错误:在展开可选值时意外发现零


Thank is advance

尝试对您的url进行编码,并使用Swift本机类型,而不是
NSURL
NSURLRequest

let stringUrl = "http://url.com/dev2/billboard/geo/\(lat)/\(lng)"
if let encodedURL = stringUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed),
   let url = URL(string: encodedURL) {
      webview.load(URLRequest(url: url))
}
编辑:我尝试了您在注释中添加的url,当您使用
urlQueryAllowed
对其进行编码时,它会完美地显示出来。可能是您没有将
NSAppTransportSecurity
添加到您的
info.plist
文件中。请尝试添加一次,它也会对您有效

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>
NSAppTransportSecurity
NSAllowsArbitraryLoads

我的想法几乎是一样的,注入URL的双精度字符会弄乱URL格式,因此URL(字符串:)返回nil。当我打印(URL.absoluteString)时,它显示的URL是正确的,但问题仍然是相同的,应该是相同的。因为您需要检查url是否正确。一周前我也有同样的问题@WasifKhalil@WasifKhalil请尝试一次
.urlPathAllowed
.urlHostAllowed
编码。@WasifKhalil您的url是否也有效?您是否按照Jason的建议检查过浏览器?如果第一个功能正常工作,那么requestURL就会出现问题。如果是第二个函数,请检查url是否存在,或者是否尝试在iPhone的safari浏览器中加载它。您是否可以单步执行您的函数,并检查得到的值
nil
?是不是
requestURL
?并尝试使用不带NS前缀的新版本API。