【问题标题】:How To Subtract Two Values From a UITextField如何从 UITextField 中减去两个值
【发布时间】:2018-03-16 20:15:10
【问题描述】:

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

我有两个 UITextField(它们都是 IBOutlets)调用: 价格字段 起薪

我有一个叫做 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)!

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

任何帮助将不胜感激,因为我似乎无法解决此问题。

【问题讨论】:

    标签: swift uitextfield uilabel


    【解决方案1】:

    remainingSalary 后面有一个分号。此外,顺便说一句,如果费用 1 或费用 2 无法转换为 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))"
    

    【讨论】:

    • 感谢您的评论。上面的代码有效,但它不适合我的场景。我有两个 UITextfields,允许数字用户输入,当用户点击 enterButton 时,我需要从另一个 UITextField 中减去一个 UITextField 的值,并将结果显示在名为“remainingSalary”的标签上
    • 非常感谢您的帮助,这看起来更像我需要的,我已将费用字段更改为价格字段,因为这正是我需要的。我现在将startingSalary 的值输入为2000,将priceField 的值输入为3,当我点击按钮时,它会返回答案“3”而不是“1997”,正如我所料,有什么想法吗?
    • 我已经编辑了我的答案以完全匹配您的字段名称,即使最好统一命名。当我使用“3”作为priceField 的文本,使用“2000”作为startingSalary 的文本运行我的代码时,我得到的字符串是“-1997”,而不是“3”。所以研究你正在做的任何其他事情。
    • 我会在操场上运行它,感谢您的帮助,非常感谢。
    猜你喜欢
    • 1970-01-01
    • 2017-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-02
    相关资源
    最近更新 更多