これを行う方法を説明するスタックオーバーフローページがたくさんあることは知っていますが、ここからコードを取得して配置するたびに同じエラーが発生し、そのエラーは「文字列」の値ですか?メンバー「テキスト」がありませんテキストフィールドが空であるかどうかをすばやくチェックするために機能する確実な方法のアイデアはありますか?
let userEmail = userEmailTextField.text;
// Check for empty fields
if (userEmail.text.isEmpty) {
// Display alert message
return;
}
この投稿 良い答えが与えられます(「受け入れられた」マークがないのは残念です)。使用する (self.field.text?.isEmpty ?? true)
。
textField
が次のように宣言されていると仮定します。
@IBOutlet weak var textField: UITextField!
あなたはその空をチェックすることができます:
if textField.text?.isEmpty ?? true {
print("textField is empty")
} else {
print("textField has some text")
}
編集した投稿で変数を使用するには:
let userEmail = userEmailTextField.text;
// Check for empty fields
if userEmail?.isEmpty ?? true {
// Display alert message
return;
}
または:
// Check for empty fields
if userEmailTextField.text?.isEmpty ?? true {
// Display alert message
return;
}
text
プロパティはオプションです。したがって、String
またはnil
を含めることができます。
nil
を空のString
として扱いたい場合は、次のように記述します。
let isEmpty = (textField.text ?? "").isEmpty
または、次を使用することもできます。
Swift 3:
if (textField.text.characters.count > 0) {
print("text field not empty")
} else {
print("text field empty")
}
Swift 4.x以降:
if (textField.text.count > 0) {
print("text field not empty")
} else {
print("text field empty")
}
写真とカバーコードの例を教えてください。
@IBAction func save(_ sender: Any) {
print("Saving...")
//CHECK MANDATORY FIELDS
checkMandatoryFields()
}
private func checkMandatoryFields(){
//CHECK EMPTY FIELDS
if let type = typeOutle.text, let name = nameOutlet.text, let address = addressOutlet.text, type.isEmpty || name.isEmpty || address.isEmpty {
print("Mandatory fields are: ")
errorDisplay(error: "Mandatory fields are: Type, Name, Address.")
return
}
//CHECK SPACE ONLY FIELDS
}
APIにリクエストを送信する必要があり、""の代わりにnillを送信する必要があったため、このチェックが役に立ちました。 textFieldはテキストなしです。
textField.text!.count > 0 ? textField.text : nil
または、次の方法で確認できます(ただし、このオプションは私には合いませんでした)。
if textField.text != nil {
} else {
}
これに対する正解は次のとおりです。
textField.text = ""
if (textField.text.isEmpty) {
print("Ooops, it's empty")
}