2014-11-17 3 views
3

В настоящее время у меня есть коллекция UITextFields, подключаемая от IB к моему коду Swift. Пользователь имеет возможность нажать кнопку, чтобы перейти к следующему виду, но мое приложение требует заполнения всех полей. Ниже мой метод, который проверяет, является ли текстовое поле пустым:Проверьте, нет ли текстового поля из коллекции UITextFields

func findEmptyField() -> UITextField? { 
     for field in fieldsCollection { 
      if field.text.isEmpty { 
       return field 
      } 
     } 
     //Return here a value signifying that no fields are empty. 
    } 

Этот метод лишь частично, так как я не знаю, как &, что вернуться, если ни один из них не являются пустыми. Вызывающая функция проверяет возвращаемое значение и выполняет действие, зависящее от того, возвращает ли оно поле или нет. Я смутно понимаю, что эта опция может помочь с этим, но я не уверен, как это сделать.

Что нужно сделать, чтобы fn возвращался так, чтобы вызывающий абонент узнал, что ни одно из полей из коллекции пуст?

+0

У вас есть массив текстовых полей ?? –

+0

Вы должны (и можете только) возвращать 'nil' в этом случае. –

+0

fieldsCollection - массив, да – Satre

ответ

1

Вы установили его идеально - так как вы уже возвращаете дополнительный UITextField?, если нет каких-либо пустых текстовых полей, вернитесь nil:

func findEmptyField() -> UITextField? { 
    for field in fieldsCollection { 
     if field.text.isEmpty { 
      return field 
     } 
    } 
    return nil 
} 

При вызове его, к сведению что вы получите дополнительное значение обратно. Развяжите его с необязательным связыванием:

if let emptyField = findEmptyField() { 
    // focus emptyField or give a message 
} else { 
    // all fields filled, ok to continue 
} 
Смежные вопросы