【发布时间】:2016-04-18 11:55:11
【问题描述】:
我尝试运行下面的语句,但它在代码中被跳过了。
guard let num1 = num1Input.text else
{
show("No input in first box")
return
}
谁能告诉我为什么当文本字段为空白时此语句没有运行?
【问题讨论】:
我尝试运行下面的语句,但它在代码中被跳过了。
guard let num1 = num1Input.text else
{
show("No input in first box")
return
}
谁能告诉我为什么当文本字段为空白时此语句没有运行?
【问题讨论】:
您可以使用where 子句来检查非零和非空
guard let num1 = num1Input.text where !num1.isEmpty else {
show("No input in first box")
return
}
【讨论】:
您应该检查文本的长度,而不是 nil 即:
guard num1Input.text.characters.count > 0 else {
...
}
如果文本是可选的,你可以这样做。
guard let num1 = num1Input.text where num1.characters.count > 0 else {
...
}
【讨论】:
.isEmpty。
这个语句是测试text是否为nil,但是你可能想测试字符串是否为空,因此
guard let input = num1Input.text where input.characters.count > 0 else {
print("empty")
return
}
或者干脆
guard num1Input.text?.characters.count > 0 else {
print("empty")
return
}
【讨论】:
.isEmpty。