ios - 执行 webView.loadRequest(request) 时出现 "unexpectedly found nil ..."错误

标签 ios swift uiwebview

我正在尝试创建一个自定义 UIViewController 数组,其中每个 Controller 都包含一个 UIWebView。在 for 循环中,在“loadRequest”处我收到“ fatal error :在展开可选值时意外发现 nil”。肯定有一个带有 URL 的 NSURLRequest 被传入。如果我注释掉“reportVC.reportWebView.loadRequest(request)”,一切都运行得很好。

func createViewControllers(callback:(controllers:[ReportViewController])->()){
    var urls = [NSURL]()
    getPDFs { (pdfURLs) -> () in
        urls = pdfURLs

        let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main",bundle: nil)
        var reportControllers = [ReportViewController](count: urls.count, repeatedValue: ReportViewController())

        for (index,url) in enumerate(urls){

            var reportVC : ReportViewController = mainStoryboard.instantiateViewControllerWithIdentifier("ReportVC") as ReportViewController
            //reportVC.title = ""
            let request = NSURLRequest(URL: url)

            reportVC.reportWebView.loadRequest(request)
            reportControllers[index] = reportVC

            if reportControllers.count == urls.count{
                callback(controllers: reportControllers)
            }
        }

    }
}

任何指导将不胜感激。谢谢。

最佳答案

很可能 ReportViewControllerreportVC 实例中的 reportWebView 未绑定(bind)(绑定(bind)到 nil)。 Xcode IB 将 IBOutlets 声明为“隐式展开的可选值”——您需要为它们提供初始值。如果不这样做,第一次访问该属性时将导致运行时异常。

通过确保 reportWebView 绑定(bind)到 UIWebView 来修复错误 - 无论是在您的 Storyboard还是您的代码中。

关于ios - 执行 webView.loadRequest(request) 时出现 "unexpectedly found nil ..."错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28163994/

相关文章:

ios - NSURLSessionDownloadTaskDelegate JSON 响应

ios - Xcode swift - 后台模式 - 锁定时 AVPlayer 中的音频

ios - 我如何计算包含特定艺术家的文件?

ios - 如何将 NSToolBarDelegate 添加到 ViewController

ios - 图像正在模拟器的 TableView 中加载,但不在设备中

swift - 如何在 swift 代码中的 Ui TextView 中上传 RTF 文件

ios - ARKit – 白皮书检测

ios - 应用程序更新的 AFNetwoking 或 UIWebview 折旧期限

ios - 使用 Screen Edge Pan Gesture Recognizer 在 WebView 中后退和前进

pdf - iOS7 更新 - 在 UIWebView 中加载的 Airprinting PDF 产生缩放 PDF 到字母页面大小的 50%