NSURL / NSURLRequest意外地为零

时间:2015-06-17 03:09:49

标签: ios swift uiwebview nsurl nsurlrequest

我尝试将PDF加载到UIWebView中,但在使用loadRequest时,我收到错误unexpectedly found nil while unwrapping an Optional。我的相关代码如下:

    let url = NSURL(string: "http://www.urartuuniversity.com/content_images/pdf-sample.pdf")!

    println(url.fileURL)

    println("The URL is \(url.absoluteURL!)")

    let request = NSURLRequest(URL: url)

    webView.loadRequest(request)

第二行代码输出false(不出所料),但第三行输出正确的URL。 webView是一个连接的UIWebView。

我已经查看了几个类似错误的示例,但似乎没有一个适用,特别是因为NSURL似乎正在工作,因为URL.absoluteURL!正确输出,正如许多其他类似的命令一样。

我也看到了对RFC 2396的引用,但在查看W3的文档时,我的网址似乎遵循了这些指南,但如果它没有,那么请告诉我这是什么格式是以及如何更改URL(因为我将不得不逐字地更改数千个,而这个PDF仅仅是我在网上找到的PDF示例。)

查看调试部分时,url是一个NSURL,保存其值的位置表示PDF的URL,而不是内存地址,这可能部分地解决了我的一些问题。

修改:为了让我的情况更加怪异,因为我使用的是具有拆分视图和表格视图的通用应用,当我加载iPad时,PDF正确加载,但是当我回到主视图并点击某些内容,重新加载详细信息视图时,会发现致命异常。如果这没有意义,请告诉我,我会尽量让它更容易理解。

1 个答案:

答案 0 :(得分:2)

问题是你不知道什么是零。添加更多日志记录,如下所示:

let url = NSURL(string: "http://www.urartuuniversity.com/content_images/pdf-sample.pdf")!
let request = NSURLRequest(URL: url)
println(url)
println(request)
println(webView)
webView.loadRequest(request)

通过这种方式,通过让您的应用程序完成其步伐并尝试重现崩溃,您将发现崩溃之前, 是什么。我猜它是webView,但猜测不是编程 - 问题是,到目前为止,只是在猜测。不要猜。你有一个调试器!调试!!!