语言:斯威夫特 平台: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值 预期表达
任何帮助都会受到赞赏,因为我似乎无法解决此问题。
答案 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))"