Ios AppDelegate:在展开可选值时意外发现nil

Ios AppDelegate:在展开可选值时意外发现nil,ios,swift,optional,appdelegate,Ios,Swift,Optional,Appdelegate,我正在从AppDelegate打一个简单的电话: let vc = ViewController() vc.myaction() 该操作在Web视图对象中打开一个url(加载到didload覆盖中) 这就是功能: func myaction() { let url = URL(string: "http://192.168.1.5/doit") let urlreq = URLRequest(url: url!) mywebview.loadRequest(urlreq) }

我正在从AppDelegate打一个简单的电话:

let vc = ViewController()
vc.myaction()
该操作在Web视图对象中打开一个url(加载到didload覆盖中)

这就是功能:

func myaction() {
   let url = URL(string: "http://192.168.1.5/doit")
   let urlreq = URLRequest(url: url!)
   mywebview.loadRequest(urlreq)
}
这就是错误:

fatal error: unexpectedly found nil while unwrapping an Optional value

found nil可能是用于
mywebView
,因为它只会在
viewcontroller
视图加载时初始化。请尝试使用以下代码

func myaction() {
    let mywebview = UIWebView()
    let url = URL(string: "http://192.168.1.5/doit")
    let urlreq = URLRequest(url: url!)
    mywebview.loadRequest(urlreq)
}
或者,您可以在
myaction()之外初始化mywebview

尝试NSURL:

func myaction() {
   let url = NSURL(string: "http://192.168.1.5/doit")
   let urlreq = NSURLRequest(url: url!)
   mywebview.loadRequest(urlreq)
}

哪一行给出了错误。我打赌这会让你。。。为什么?因为这是你试图打开东西的唯一一条线。我还敢打赌,如果你在那一行设置一个断点并检查url的内容,你会发现它为零。(当然,除非你没有发布真正适合你的代码。)所以你需要真正问的问题——如果我在这里是正确的话——是什么阻止了你的HTTP请求。你在Info.plist中设置了ATP设置了吗?如果不是,您的URL请求将被拒绝,因为它不是httpsTry,无法在app transport security的术语中将任意加载添加到YES。如果您使用的是故事板,
vc
不是Interface Builder中设计的预期实例。因此,
IBOutlet
未连接。您需要对
ViewController
的真正引用。