Я практикую быстрое программирование, создавая приложение, которое хранит данные клиентов. В приложении есть несколько текстовых полей, в которых люди должны ввести свое имя, адрес электронной почты, номер телефона и количество приобретенных продуктов. Затем с помощью кнопки «отправить» они сохраняют эту информацию в базу данных. Однако, если одно из полей пусто, должна быть выдана ошибка, и пользователю должно появиться сообщение о том, что одно из полей пусто.
Проблема в том, что даже если текстовое поле пусто, компилятор не читает его как ноль, поэтому мое условие не работает.
Для простоты я опускаю много кода. Я буду работать только с одним UITextField (имя клиента), и мое условие будет проверять, является ли TextField пустым или нет. Если пусто, должно быть напечатано «Пожалуйста, введите действительное имя». если оно НЕ нулевое, должно быть напечатано имя клиента.
class RaffleViewControler: UIViewController, UITextFieldDelegate {
@IBOutlet weak var customerNameTextField: UITextField!
@IBAction func addCustomerName(_ sender: UITextField) {
}
@IBOutlet weak var submitButton: UIButton!
@IBAction func submitCustomer(_ sender: UIButton) {
if let name = customerNameTextField.text {
print(name)
} else {
print("Please enter a valid name")
}
}
В качестве альтернативы я также проверял свое состояние в следующем формате:
@IBAction func submitCustomer(_ sender: UIButton) {
if customerNameTextField.text != nil {
print("Congrats. Your data is in our database")
} else {
print("Please enter a valid name")
}
}
Проблема:
Даже если я оставлю текстовое поле пустым, компилятор не прочитает «еще» часть условия. Что, кажется, указывает на то, что поле никогда не равно нулю. Что может происходить?
if customerNameTextField.hasText {
. другой вариант - проверить, не является ли он пустым, проверяя свойство textif customerNameTextField.text?.isEmpty == false {
- person Leo Dabus   schedule 10.11.2017