【问题标题】:"Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subside = 0x0)“线程 1:EXC_BAD_INSTRUCTION(代码=EXC_I386_INVOP,subside = 0x0)
【发布时间】:2017-03-05 02:38:43
【问题描述】:

对不起,我是堆栈溢出的新手,所以我可能以错误的格式发布此内容..

我正在尝试设置我的登录名,因此用户将他们的用户名和密码输入到两个文本字段中。如果他们已经创建了一个帐户,他们会按下“登录”按钮并继续。如果他们创建了一个新帐户,他们会按下“注册”按钮并将他们定向到一个新的视图控制器。在这个控制器中,我想将他们输入的数据放入之前的文本字段中,并在注册页面中填写新的用户名和密码文本字段。

我尝试关注如何执行此操作的 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,subside 0x0

致命错误:在展开可选值时意外发现 nil

我收到此错误,但我想我已经设置了一个 if else 语句来确定该值是否为 nil?

我输入 0 和 5 只是为了看看代码是否能正常运行并且没有任何错误...

有人帮忙吗?我将不胜感激。谢谢。

【问题讨论】:

    标签: swift xcode null optional


    【解决方案1】:

    你做测试看看UsernameForRegistrationText是否为nil。

    但是你测试看看UsernameForRegistrationText.text是否为nil。所以,如果是nil,你说UsernameForRegistrationText.text!的时候就崩溃了

    请记住,在 Swift 中,任何时候您在引用后添加感叹号 (!) 时,您都要求崩溃。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-20
      • 2019-12-09
      • 2020-06-12
      • 1970-01-01
      • 1970-01-01
      • 2020-10-06
      相关资源
      最近更新 更多