Не удается присвоить значение типа 'UITextField?'набрать 'String?' - PullRequest
0 голосов
/ 14 октября 2018

Первая проблема:

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?набрать 'String?'

Вторая проблема:

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?'Операнды

1 Ответ

0 голосов
/ 14 октября 2018

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!.

AUILabel имеет свойство 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
}
...