Почему не передается значение, которое вписываешь в textField?
Имеется следующая функция, которая по нажатии на кнопку высвечивает окошко, куда пользователь вписывает свое число:
@objc func addRowToEnd() {
self.tableView.beginUpdates()
let alert = UIAlertController(title: "Add new income / expense", message: "", preferredStyle: .alert)
alert.addTextField(configurationHandler: { [self] (textField) in
if let mText = textField.text {
new_income_expense = Float(mText) ?? 100.0
}
})
alert.addAction(UIAlertAction(title: "Update",
style: .default,
handler: { [self](updateAction) in
self.cellArr.append("\(new_income_expense)") // Добавление в массив нового элемента
self.tableView.insertRows(at: [IndexPath(row: self.cellArr.count - 1,
section: 0)],
with: .automatic) // + 1 элемент
}))
self.present(alert, animated: false) // Высвечивает окошко
self.tableView.endUpdates()
balanceScore = self.balanceScore + new_income_expense
self.balance.text = "Your Balance: \(balanceScore)"
}
Проблема в том, что вместо моего числа, которое я вписываю, в таблицу все равно вставляется значение 100 по умолчанию, будто мое вписанное игнорируется, что я делаю не так?
Ответы (1 шт):
Автор решения: Oleg Soloviev
→ Ссылка
Вот эта строка new_income_expense = Float(mText) ?? 100.0 означает, что если преобразование Float возвращает nil, то будет подставляться 100. То есть Float не может превратить mText в число. Возможно, mText это набор букв и т.п.