我有两个 swift 文件 MenuViewController.swift 和 ViewController.swift
我在 ViewController.swift 的以下函数中得到了 nil 异常
@IBOutlet weak var webSiteView: UIWebView!
func LoadWebview(webURL: String) {
let url = NSURL(string: webURL)
let request = NSURLRequest(url: url! as URL)
webSiteView.loadRequest(request as URLRequest)
}
我使用 MenuViewController.swift 中的以下代码访问了该函数
ViewController().LoadWebview(webURL: "http://www.google.com")
我收到错误线程 1: fatal error :在展开可选值时意外发现 nil 作为附加的屏幕截图
错误截图-> 1
最佳答案
你犯了一个常见的错误。
默认初始化器 ViewController()
创建一个全新的 View Controller 实例,它不是 Storyboard中的实例。
因此 socket 未连接且代码崩溃。
即使新实例是 Storyboard 中的实例,您也不能使用此语法,因为在加载关联 View 和 viewDidLoad
之前,无论如何都不会连接导出。被称为。
在您的情况下,您必须通过导出、回调闭包、协议(protocol)/委托(delegate)或在 segue 中传递数据来获取 Storyboard中对 Controller 的实际引用。
关于ios - 如何从另一个访问某些变量的swift文件访问函数 - ios,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48344902/