У меня есть forL oop, который перебирает элементы в массиве textField и проверяет, заполнены ли все поля, иначе возврат. Проблема, которая у меня есть по умолчанию, состоит в том, что 3 из 4 элементов в массиве предварительно заполнены, поэтому в первом случае первый элемент является незаполненным, и функция прерывается, но как только я делаю элемент во втором пустым и заполняю во-первых, он сначала запускает true
, а затем повторно запускает проверку, которая равна false
, как бы то ни было, проверка проверяется. Как я могу предотвратить вызов закрытия true
до тех пор, пока все пункты не будут рассмотрены.
private func formArrayValidation(completion: @escaping (Bool, [String: Any]?) -> Void) {
guard self.pageThree.formArray.count > 0 else {
return
}
for form in self.pageThree.formArray {
guard form.textField.text != "" else {
SPAlert.present(message: "\(form.dynamicModel?.name ?? "") is required", haptic: .error)
completion(false, nil)
break
}
guard Regex.validateDynamicForm(form.textField.text ?? "", pattern: form.dynamicModel?.pattern ?? "") else {
SPAlert.present(message: "\(form.textField.text ?? "") does not match our pattern", haptic: .error)
completion(false, nil)
break
}
guard let key = form.dynamicModel?.key, let value = form.textField.text else { return }
inputParameter[key] = value
self.applicationParameter["inputs"] = inputParameter
completion(true, applicationParameter)
}
}