Ios 当任何字段留空时,UITextfield值的总和崩溃
大家好。我最近刚开始尝试学习Swift 2中的编码。我正在尝试制作一个非常简单的应用程序,在这里我可以添加分数,按下“计算”按钮并在标签中显示总数。我能够做到这一点,如屏幕截图所示。我遇到的问题是,如果我没有在其中一个文本字段中输入分数,并且仍然尝试计算它,它就会崩溃。这是我的代码: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
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 fieldscore1
)为空,那么下面的代码行就是let score1=Int(score1.text!)代码>,将失败,因为当发送空字符串时,Int
初始值设定项将返回nil
。这里有几个线程,解释如何安全地展开可选变量,以及如何将String
值转换为Int
,例如,请参阅强制展开可选变量时可能出现的重复。如果任何字段(比如text fieldscore1
)为空,那么下面的代码行就是let score1=Int(score1.text!)代码>,将失败,因为当发送空字符串时,Int
初始值设定项将返回nil
。这里有几个线程,解释了如何安全地打开选项,以及如何将字符串
值转换为Int
,请参见例如。非常感谢的可能重复!工作得很好。这个答案也帮我弄明白了如何在双人床上工作。@ChrisWong很乐意帮忙!看看链接的线程,这里有很多有价值的信息。非常感谢!工作得很好。这个答案也帮我弄明白了如何在双人床上工作。@ChrisWong很乐意帮忙!看看链接的线程,这里有很多有价值的信息。