【问题标题】:Cannot assign value of type 'UITextField?' to type 'String?'无法分配“UITextField”类型的值?键入“字符串?”
【发布时间】:2018-10-14 19:05:59
【问题描述】:

第一个问题:

månadsSparande 是一个数字,例如 100。

当我这样做时:

@IBOutlet weak var månadsSparande: UITextField!

@IBAction func beräkna(_ sender: UIButton) {
    totalAvkastning.text = månadsSparande
}

@IBOutlet weak var totalAvkastning: UILabel!

我收到此错误:无法分配“UITextField”类型的值?输入“字符串?”

第二个问题:

månadsSparande 是一个数字,例如 100。 ränta 是一个数字,例如 2。

当我这样做时:

@IBOutlet weak var månadsSparande: UITextField!
@IBOutlet weak var ränta: UITextField!

@IBAction func beräkna(_ sender: UIButton) {
    var månad = månadsSparande + ränta
}

@IBOutlet weak var totalAvkastning: UILabel!

我收到此错误:二进制运算符“+”不能应用于两个“UITextField?”操作数

【问题讨论】:

  • månadsSparanderänta 不是像 100 或 2 这样的数字。它们是 UITextField

标签: ios swift uitextfield uilabel


【解决方案1】:

1- 将:totalAvkastning.text = månadsSparande 替换为:totalAvkastning.text = månadsSparande.text。因为要获取文本域的文本,设置为标签totalAvkastning的文本。

2- 将:var månad = månadsSparande + ränta 替换为:var månad = månadsSparande.text! + ränta.text!

UILabel 有一个 text 属性,这是您感兴趣的属性。UITextField 也是如此。

如果您希望文本字段仅用于数字,则将这些文本字段的键盘类型属性设置为 Number Pad 并执行以下操作:

if let månadsSparandeText = månadsSparande.text, let månadsSparandeInt = Int(månadsSparandeText), let räntaText = ränta.text, let räntaInt = Int(räntaText) {
    var månad = månadsSparandeInt + räntaInt
}

【讨论】:

  • 感谢您的回答!我忘了告诉我在第二个问题中只想要数字。 månadsSparande + ränta 应该是数字而不是文本。例如在 månadsSparande 中写 100,在 ränta 中写 2。答案应该是 100+2 = 102 如果我按照你说的做我得到 1002
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-11
  • 1970-01-01
相关资源
最近更新 更多