如何在Swift 3中使用UITextFields创建一个switch表达式

时间:2016-11-05 04:36:06

标签: ios swift switch-statement uitextfield swift3

我想检查UITextFields的{​​{1}}状态。在.text执行一项功能并显示提醒视图!= ""。由于我有5个不同的if == ""我想到了UITextFields语句。

switch

@IBAction func doneButton(_ sender: Any) { let indexPath = IndexPath(row: 0, section: 0) let cell = self.tableView.cellForRow(at: indexPath) as! SetupCell var textFields: [UITextField] = [] textFields = [cell.nameTF, cell.townTF, cell.birthdayTF, cell.genreTF, cell.deejayTF] for tf in textFields { print("called") // is printed if tf.text != "" { print("not empty") // is printed switch UITextField() { case cell.nameTF: saveCredential(ME, "name", cell.nameTF.text!) case cell.birthdayTF: saveCredential(ME, "birthday", cell.birthdayTF.text!) case cell.townTF: saveCredential(ME, "town", cell.townTF.text!) case cell.deejayTF: saveCredential(ME, "deejayName", cell.deejayTF.text!) case cell.genreTF: saveCredential(ME, "genre", cell.genreTF.text!) default: break } } else { print("is empty") // printed switch UITextField() { case cell.nameTF: presentAlertView(self, title: "Error", message: "Name missing") case cell.birthdayTF: presentAlertView(self, title: "Error", message: "Birthday missing") case cell.townTF: presentAlertView(self, title: "Error", message: "Town missing") case cell.deejayTF: presentAlertView(self, title: "Error", message: "Deejay name missing") case cell.genreTF: presentAlertView(self, title: "Error", message: "Genre missing") default: break } } } } 语句中的代码未执行。这种情况既不是空的,也不是。我认为问题可能在switch,但我无法找到解决方案。我错过了什么?非常感谢帮助。

PS。 switch UITextField()以及saveCredential完全适用于应用的其他部分,因此可能不是问题。但可以肯定的是:

presentAlertView

1 个答案:

答案 0 :(得分:1)

问题是您是使用UITextFiled语句传递switch的新实例,而不是从Array传递对象。

switch tf {

而不是

switch UITextField() {