2016-11-21 144 views
0

如果我是正确的:EXC_BAD_INSTRUCTION意味着应用程序崩溃,因为某些东西不存在。但是我得到的错误Swift Firebase。线程1:EXC_BAD_INSTRUCTION(代码= EXC_I386_INVOP,子代码= 0x0)

(Google上搜寻它,并试图让我的头一轮之后):

Thread 1:EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=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) 

然后另一个错误在最后一行抛出:

Value of optional type is not unwrapped.

当我点击小修复它。它改变了代码这样:

self.present((next?)!, animated: true, completion: nil) 

但随后,类似的错误也是如此:

optional chain has no effect

我在做什么错误,以及如何解决这个问题?

+0

你是否在任何类中声明了带有数据库引用的全局变量? – Dravidian

+0

@Dravidian我不确定与呈现视图控制器有什么关系?是的,我有标准的FIRDatabase.database()。reference() – JamesG

+0

@JamesG这次崩溃与Firebase无关。检查'storyboard'属性是否为'nil'或'instantiateViewController'方法返回的'UIViewController'实例为'nil' –

回答

0

我只是在instantiateViewController, 期间遇到同样的问题,但它有点不同,因为我从另一个类调用该方法。

一种常见方式,看看有什么不顺心是storyboard 这样经过设置?!self.storyboard!.instantiateViewController

你可能会看到这个错误
fatal error: unexpectedly found nil while unwrapping an Optional value
这意味着故事板被发现零。在我的情况下,我以某种方式无法获得UIStoryboard的现有参考(因为我从另一个类中调用)。

我找到解决的办法是首先重新申报UIStoryboard:
let next = UIStoryboard(name: "Main", bundle:nil).instantiateViewController(withIdentifier: "LoginViewController") as? LoginViewController
我不知道为什么这样的工作,因为它仍然没有得到故事板的电流基准,但它为我工作。

相关问题