Ios 当任何字段留空时,UITextfield值的总和崩溃

Ios 当任何字段留空时,UITextfield值的总和崩溃,ios,sum,uitextfield,swift2,xcode7,Ios,Sum,Uitextfield,Swift2,Xcode7,大家好。我最近刚开始尝试学习Swift 2中的编码。我正在尝试制作一个非常简单的应用程序,在这里我可以添加分数,按下“计算”按钮并在标签中显示总数。我能够做到这一点,如屏幕截图所示。我遇到的问题是,如果我没有在其中一个文本字段中输入分数,并且仍然尝试计算它,它就会崩溃。这是我的代码: class ViewController: UIViewController { @IBOutlet weak var score1: UITextField! @IBOutlet weak var

大家好。我最近刚开始尝试学习Swift 2中的编码。我正在尝试制作一个非常简单的应用程序,在这里我可以添加分数,按下“计算”按钮并在标签中显示总数。我能够做到这一点,如屏幕截图所示。我遇到的问题是,如果我没有在其中一个文本字段中输入分数,并且仍然尝试计算它,它就会崩溃。这是我的代码:

    class ViewController: UIViewController {


@IBOutlet weak var score1: UITextField!

@IBOutlet weak var score2: UITextField!

@IBOutlet weak var score3: UITextField!

@IBOutlet weak var total: UILabel!

@IBAction func Calculate(sender: AnyObject) {

    let score1 = Int(score1.text!)!
    let score2 = Int(score2.text!)!
    let score3 = Int(score3.text!)!
    let alltogether = (scoreone) + (scoretwo) + (scorethree)

    total.text = "Your total score is \(alltogether)!"

}

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

}
有人能给我指一下我需要看的方向吗。我想如果字段为零,我需要添加某种豁免。或者类似于将默认int设置为0???谢谢大家!

let score1 : Int = Int(score1.text ?? "") ?? 0
let score2 : Int = Int(score2.text ?? "") ?? 0
let score3 : Int = Int(score3.text ?? "") ?? 0
如果字段为空或非数字(或者如果
UITextField
属性
。text
包含
nil
),这将产生值
0


如果您的字段为空或非数字(或者如果
UITextField
属性
。text
包含
nil
),这将产生值
0

您正在强制展开可选变量。如果任何字段(比如text field
score1
)为空,那么下面的代码行就是
let score1=Int(score1.text!),将失败,因为当发送空字符串时,
Int
初始值设定项将返回
nil
。这里有几个线程,解释如何安全地展开可选变量,以及如何将
String
值转换为
Int
,例如,请参阅强制展开可选变量时可能出现的重复。如果任何字段(比如text field
score1
)为空,那么下面的代码行就是
let score1=Int(score1.text!),将失败,因为当发送空字符串时,
Int
初始值设定项将返回
nil
。这里有几个线程,解释了如何安全地打开选项,以及如何将
字符串
值转换为
Int
,请参见例如。非常感谢的可能重复!工作得很好。这个答案也帮我弄明白了如何在双人床上工作。@ChrisWong很乐意帮忙!看看链接的线程,这里有很多有价值的信息。非常感谢!工作得很好。这个答案也帮我弄明白了如何在双人床上工作。@ChrisWong很乐意帮忙!看看链接的线程,这里有很多有价值的信息。