如何从UITextField中减去两个值

时间:2018-03-16 20:15:11

标签: swift uitextfield uilabel

语言:斯威夫特 平台:IOS(iPhone 8 Build)

我有两个UITextField(两个都是IBOutlets)被调用: priceField startingSalary

我有一个名为enterButton的按钮

一旦用户输入了一个数字并按下“enterButton”,我试图从“startingSalary”的值中减去“priceField”的值。

研究表明我需要在它们减去之前将它们从String类型转换为Int类型,但我已经在这上面坐了两天而且我似乎无法做到正确。

我还有一个名为“remainingSalary:”的标签,我要打印“PriceField”的结果 - “startingSalary”

代码:

@IBAction func enterButton(_ sender:UIButton){

    expensesView.text = " \(expenseField.text!)  \(priceField.text!)"
    let expense1:String = expenseField.text!
    let expense2:String = startingSalary.text!

    remainingSalary;: Int = Int(expense1)! - Int(expense2)!

错误的 表达式解析为未使用的l值 预期表达

任何帮助都会受到赞赏,因为我似乎无法解决此问题。

1 个答案:

答案 0 :(得分:1)

在leftSalary之后你有一个分号。另外,顺便说一句,如果expense1或expense2无法转换为Int,选择崩溃是一个坏主意。以下打印-1。

let expense1:String = priceField.text ?? ""
let expense2:String = startingSalary.text ?? ""

assert( Int(expense1) != nil && Int(expense2) != nil) 
let remainingSalary: Int = (Int(expense1) ?? 0) - (Int(expense2) ?? 0)
remainingSalaryField.text = "\(remainingSalary)" // sticks the answer into a UITextField named remainingSalaryField.

或者你可以写下这个:

remainingSalaryField.text = "\((Int(priceField.text ?? "") ?? 0) - (Int(startingSalary.text ?? "") ?? 0))"