【问题标题】:Sum of 3 UITextField? [closed]3 UITextField 的总和? [关闭]
【发布时间】:2018-03-13 06:22:56
【问题描述】:

https://ibb.co/nH38wG

为什么结果是 123 而不是 6?

谁能给我详细解释一下?

【问题讨论】:

  • codeclass ViewController: UIViewController, UITextFieldDelegate { var textField1 : UITextField! var textField2 : UITextField! var textField3 : UITextField!变量标签:UILabel! let str : String = "你输入了:"code
  • 连接字符串和汇总数值是两个不同的东西。

标签: swift xcode uitextfield xcode9


【解决方案1】:

您正在“求和”字符串。 “1”+“2”+“3”=“123”。 将其转换为数字:Int("1")+Int("2")+Int("3")=6。

label.text = str + Int(textField1.text!)! + Int(textField2.text!)! + Int(textField3.text!)!

【讨论】:

    【解决方案2】:

    您正在标签文本中相互添加文本 (String) 值。你应该这样做:

    guard let num1 = Int(textField1.text),
        let num2 = Int(textField2.text),
        let num3 = Int(textField3.text) else {
        return
    }
    
    let sum = num1 + num2 + num3
    label.text = str+sum
    

    【讨论】:

    • 这样试试:) 我得到了... 二元运算符 '+' 不能应用于两个 'Int?'操作数
    • textField.text 不是 Int,它是一个字符串值,这就是为什么您不能在数学上将它们彼此相加,您可以在字符串中将它们并排相加。因此,我们将这些字符串转换为整数,然后以数学方式将它们相加。
    • Int(String) 返回一个 Int? (可选),您需要添加 write Int(textField.text!)!对于每个字段,强制展开可选
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-28
    • 2018-10-25
    • 1970-01-01
    • 2011-06-13
    • 1970-01-01
    • 2022-06-14
    • 1970-01-01
    相关资源
    最近更新 更多