我尝试使用一个保护而不是if/else语句来检查我的输入字段是否为空或其中是否包含默认文本。这是我试图使用的防护,但它总是失败,即使文本字段中包含默认文本以外的内容。
guard (name.text?.isEmpty)!, name.text! == "Add Name" else{
// call the warning function
warningMessage()
return
}
print("made it")
// dismiss the viewcontroller
这就是我将用于if/else语句的内容
if(personName.text == "" || personName.text == "Add a name"){
warningMessage()
}else{
}
发布于 2016-12-14 00:01:41
您的逻辑是错误的,按照您编写的方式,如果name.text为零,它将崩溃。
你想要这样的东西:
placeholder = name.placeholder ?? ""
guard let text = name.text,
!text.isEmpty {
// call the warning function
warningMessage()
return
}
print("made it")
上面写着:
如果name.text为空、为空或包含占位符值,则退出
编辑:
正如@LeoDabus在注释中指出的那样,您应该在文本字段中使用占位符字符串,而不是设置文本值。然后,您不需要与起始文本值进行比较。
发布于 2016-12-14 01:42:28
guard let text = name.text, text.isEmpty || text == "Add Name" else {
if name.text == nil {
// input field is empty
}
return
}
// input field is empty or had the default text in it
发布于 2016-12-14 02:12:57
如果您想要确保
你可以写
guard name.text?.isEmpty == false, name.text != "Add Name" else {
warningMessage()
return
}
print("made it")
https://stackoverflow.com/questions/41132446
复制相似问题