“主题1:EXC_BAD_INSTRUCTION(代码= EXC_I386_INVOP,消退=为0x0)

“主题1:EXC_BAD_INSTRUCTION(代码= EXC_I386_INVOP,消退=为0x0)

问题描述:

对不起进出口新的堆栈溢出,所以我可能会在错误的格式发布这个..“主题1:EXC_BAD_INSTRUCTION(代码= EXC_I386_INVOP,消退=为0x0)

我试着去建立我的登录信息,这样用户将他们的用户名和密码输入到两个文本字段中,如果他们已经创建了一个帐户,他们按下“登录”按钮并继续;如果他们创建一个新帐户,他们按下“注册”按钮并指示他们到一个新的视图控制器,在这个控制器中,我想将他们输入的数据放到以前的文本字段中,并在注册页面中填写新的用户名和密码文本字段

我试图关注如何做到这一点的youtube视频,但我一直得到这个愚蠢的错误,我不知道如何解决它。

// 
// ViewController.swift 
// Silver 
// 
// Created by Lakeside Software on 3/3/17. 
// Copyright © 2017 KenSchumacher. All rights reserved. 
// 

import UIKit 
import Firebase 

class ViewController: UIViewController { 

@IBOutlet weak var returningEmail: UITextField! 


@IBOutlet weak var returningPassword: UITextField! 

override func viewDidLoad() { 
    super.viewDidLoad() 

    // Do any additional setup after loading the view, typically from a nib. 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 

@IBAction func LoginFunction(_ sender: Any) { 

    func login() { 

     FIRAuth.auth()?.signIn(withEmail: returningEmail.text!, password: returningPassword.text!, completion: { 
      user, error in 

      if error != nil{ 
       //Password is not right 
       print("Password is incorrect") 
      } 
      else { 
       //password is correct 
       print("Welcome in") 
      } 
     }) 
    } 
} 
@IBOutlet weak var UsernameForRegistrationText: UITextField! 


override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    var DestViewController = segue.destination as! viewTwo 


    if UsernameForRegistrationText == nil 
    { 
    DestViewController.viewTwo.text = "0" 
    } 
    else { 
    //DestViewController.testLabel.text =  UsernameForRegistrationText.text! 
    DestViewController.viewTwo.text = "5" 
} 
} 

} 

在代码的底线,我得到一个“主题1:EXC_BAD_INSTUCTION(代码:EXC_I386_INVOP,消退为0x0

致命错误:意外发现零而展开的可选值

我得到这个错误,但我认为我已经设置了一个if else语句来决定该值是否为零?

我把0和5放在刚才看看代码是否能够正常工作并且没有任何错误.. 。

任何人有任何帮助?我将不胜感激。谢谢。

你测试看UsernameForRegistrationText是否为零。

但是你做不是测试看看UsernameForRegistrationText.text是否为零。因此,如果是零,你当你说UsernameForRegistrationText.text!

记住崩溃,在斯威夫特,你一个参考后加感叹号(!)任何时候,你是要求崩溃。