【问题标题】:NSURL/NSURLRequest is unexpectedly nilNSURL/NSURLRequest 意外为零
【发布时间】:2015-09-02 02:29:21
【问题描述】:

我正在尝试将 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。

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

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

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

编辑:为了让我的情况更加奇怪,因为我使用的是具有拆分视图和表格视图的通用应用程序,当我加载 iPad 时,PDF 加载正确,但是我回到主视图并单击某些东西,重新加载详细视图,发现致命异常。如果这没有意义,请告诉我,我会尽力使其更易于理解。

【问题讨论】:

  • 您的 url 不是 nil,所以问题标题可能有点误导。无论如何,我建议您仔细检查所有内容是否与您的界面构建器正确连接。
  • 感谢标题和界面构建器的建议,界面构建器中的所有内容都已连接。
  • 尝试 if let webView = webView { webView.loadRequest(request) } else { print("webView is nil") } 只是为了检查在您尝试加载请求时您的 webView 是否因某种原因消失了。

标签: ios swift uiwebview nsurl nsurlrequest


【解决方案1】:

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

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)

通过这种方式,通过让您的应用程序运行并尝试重现崩溃,您会发现,就在崩溃之前什么 是 nil。我猜是webView,但猜测不是编程——问题是,到目前为止,只是在猜测。不要猜测。你有一个调试器!调试!!!

【讨论】:

  • 是的..我尝试了上面的示例......它对我有用
  • 在这样做之后,你是对的,webView 是 nil,但我删除并重新创建了连接,但它仍然无法正常工作,而且这并不能解释它第一次在 iPad 上是如何工作的。有什么想法吗?
  • 我会说这是一个不同的问题。既然您知道发生了什么,您就可以开始思考原因。我希望在您的新问题中描述您的视图控制器层次结构和 segues...
猜你喜欢
  • 1970-01-01
  • 2012-03-05
  • 2011-07-21
  • 1970-01-01
  • 2011-01-07
  • 2016-11-24
  • 2012-03-12
  • 1970-01-01
  • 2016-02-14
相关资源
最近更新 更多