Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/118.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios nil测试可选,并将nil切换为0_Ios_Swift_Optional - Fatal编程技术网

Ios nil测试可选,并将nil切换为0

Ios nil测试可选,并将nil切换为0,ios,swift,optional,Ios,Swift,Optional,我正在开发一个简单的应用程序,我需要将两个输入文本字段的数字加在一起。我想这样做,如果文本字段中的on没有条目,它将计算为0。最有效的方法是什么?任何帮助都将不胜感激 @IBAction func myButton(sender: AnyObject) { //reveals label upon click of button myLabel1.hidden = false //textField constants let firstNum = Doubl

我正在开发一个简单的应用程序,我需要将两个输入文本字段的数字加在一起。我想这样做,如果文本字段中的on没有条目,它将计算为0。最有效的方法是什么?任何帮助都将不胜感激

@IBAction func myButton(sender: AnyObject) {

    //reveals label upon click of button
    myLabel1.hidden = false

    //textField constants
    let firstNum = Double(myTextField1.text!)
    let secondNum = Double(myTextField2.text!)


    let outputValue = Double(firstNum! + secondNum!)
    myLabel1.text = "Result: \(outputValue)"


}
使用(带有来自的更正):

let firstNum = Double(myTextField1.text ?? "") ?? 0
let secondNum = Double(myTextField2.text ?? "") ?? 0
使用(带有来自的更正):

let firstNum = Double(myTextField1.text ?? "") ?? 0
let secondNum = Double(myTextField2.text ?? "") ?? 0

我试过了,它给了我一个关于字符串和整数的错误。你的回答确实鼓励我用其他形式尝试这个方法,而且我确实成功了……让firstNum=Double(myTextField1.text!)??0,我不得不更改输出值,但现在它似乎破坏了我的键盘调用,这有问题。
后面必须跟有成员访问、方法调用或索引。我建议
让firstNum=Double(myTextField1.text??)??0
。这将处理一个nil字段和一个不转换为类似“2”的双精度字段。@vacawama yup意识到,正如我所做的那样,thx用于校正。
nil合并运算符
非常有用<代码>a=b??c是b!=nil{a=b!}否则{a=c}。使用三元
?:
运算符,它是
a=(b!=nil)的缩写?b!:c
。我试过了,它给了我一个关于字符串和整数的错误。你的回答确实鼓励我用其他形式尝试这个方法,而且我确实成功了……让firstNum=Double(myTextField1.text!)??0,我不得不更改输出值,但现在它似乎破坏了我的键盘调用,这有问题。
后面必须跟有成员访问、方法调用或索引。我建议
让firstNum=Double(myTextField1.text??)??0
。这将处理一个nil字段和一个不转换为类似“2”的双精度字段。@vacawama yup意识到,正如我所做的那样,thx用于校正。
nil合并运算符
非常有用<代码>a=b??c是b!=nil{a=b!}否则{a=c}。使用三元
?:
运算符,它是
a=(b!=nil)的缩写?b!:c