抱歉我是新的堆栈溢出所以我可能会以错误的格式发布这个..
我尝试设置登录信息,因此用户将用户名和密码输入两个文本字段。如果他们已经开帐户,他们按“登录”按钮继续。如果他们创建了一个新帐户,他们按下“注册”按钮,然后将它们指向新的视图控制器。在此控制器中,我想将他们输入的数据放入以前的文本字段中,并在注册页面中填写新的用户名和密码文本字段。
我曾尝试关注如何执行此操作的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
致命错误:在解包可选值时意外发现nil
我收到此错误,但我认为我已经设置了if else语句来判断该值是否为nil?
我将0和5放入以查看代码是否正常运行且没有任何错误......
有人有任何帮助吗?我将不胜感激。感谢。
答案 0 :(得分:0)
您要测试UsernameForRegistrationText
是否为零。
但你做不测试以查看UsernameForRegistrationText.text
是否为零。因此,如果它为零,则在您说UsernameForRegistrationText.text!
请记住,在Swift中,只要在引用后添加感叹号(!
),就会要求崩溃。