我想检查textField是否为空,如果为空,则提供特定文本。 我尝试过如下,但它返回“”
let text = textField.text ?? "abc"
let value = ["text": text]
//put firebase database
ref.child("text").setValue(value)
我该如何解决这个问题?提前谢谢!
答案 0 :(得分:3)
问题是你总是得到一个空的字符串,而不是零。您可以按照以下说明进行更正:
let text = (textField.text ?? "").isEmpty ? "abc" : textField.text
答案 1 :(得分:1)
您必须确保text
属性不是nil,并且它不包含空字符串:
let text: String
if let textFieldText = textField.text, !textFieldText.isEmpty {
text = textFieldText
} else {
text = "abc"
}
答案 2 :(得分:1)
稍微修改Anton的答案,您可以使用:
let text = (textField.text ?? "").isEmpty ? "abc" : textField.text!
(强制展开textField.text
的第二次出现,因此text
不是可选的。)
在这种情况下,强制解包是安全的,因为第一个??
“无合并运算符将处理textField.text == nil
的情况。
如果您不想使用强制解包,请将转换分为两行:
let required = str ?? ""
let text = required.isEmpty ? "abc" : required
Daibaku,你在评论中展示的解决方案:
guard let text = (textField.text ?? "").isEmpty ? "abc" : textField.text else {
return
}
print(text)
如果textField.text == nil