在解包一个可选值WKWebView获取参数时意外地发现了nil

Was*_*lil 2 ios swift wkwebview

我在WKWebView上工作,当我加载一个没有这样的参数的网址,它工作正常

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)
}
Run Code Online (Sandbox Code Playgroud)

但我想用这样的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)
}
Run Code Online (Sandbox Code Playgroud)

它显示了这个错误:

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

谢谢是提前

Nir*_*v D 6

尝试编码您的网址并使用Swift本机类型URLURLRequest不是NSURLNSURLRequest.

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))
}
Run Code Online (Sandbox Code Playgroud)

编辑:我已经尝试过您在评论中添加的网址,当您使用它进行编码时它会完美显示urlQueryAllowed.可能是你没有添加NSAppTransportSecurity你的info.plist文件尝试添加一次,它也适合你.

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>
Run Code Online (Sandbox Code Playgroud)