【发布时间】:2016-11-21 16:14:30
【问题描述】:
如果我是正确的:EXC_BAD_INSTRUCTION 意味着应用程序崩溃是因为某些东西不存在。 (在谷歌上搜索并试图让我的头绕开它之后)
但是我得到了错误:
线程 1:EXC_BAD_INSTRUCTION(代码=EXC_I386_INVOP,子代码=0x0)
当我尝试加载另一个视图时。
这是应用崩溃的函数:
func loginUserNeedsEmailVerification() {
let next = self.storyboard?.instantiateViewController(withIdentifier: "LoginViewController") as! LoginViewController
next.isUserLoggedInButNeedsEmail = true
self.present(next, animated: true, completion: nil)
}
我正在调用这个函数。从像这样的另一个函数:
perform(#selector(loginUserNeedsEmailVerification), with: nil, afterDelay: 0)
即使文件存在,我也将 ! 更改为 ?,如下所示:
let next = self.storyboard?.instantiateViewController(withIdentifier: "LoginViewController") as? LoginViewController
next?.isUserLoggedInButNeedsEmail = true
self.present(next?, animated: true, completion: nil)
然后在最后一行抛出另一个错误:
可选类型的值未解包。
当我点击小修复它时。它将代码更改为:
self.present((next?)!, animated: true, completion: nil)
但那也会出现这样的错误:
可选链无效
我做错了什么,我该如何解决?
【问题讨论】:
-
您是否在任何类中声明了一个带有数据库引用的全局变量?
-
@Dravidian 我不确定这与呈现的视图控制器有什么关系?是的,我有标准的 FIRDatabase.database().reference()
-
@JamesG 这次崩溃与 Firebase 无关。检查
storyboard属性是nil还是instantiateViewController方法返回的UIViewController实例是nil
标签: swift firebase exc-bad-instruction