【问题标题】:Checking for an empty string in Swift 2在 Swift 2 中检查空字符串
【发布时间】:2017-03-14 17:00:54
【问题描述】:

我正在尝试在 Swift 2 中创建一个必填字段。每次运行此代码时,我都没有收到任何错误,但我从未收到文本字段为空的错误消息。 segue 总是被执行。知道我做错了什么吗?

谢谢!

@IBOutlet weak var userName: UITextField!
@IBAction func userConfermation(sender: AnyObject) {
     if userName.text!.isEmpty {
         let alertController = UIAlertController(title: "Error",
                                                 message: "Incorrect Password", preferredStyle:UIAlertControllerStyle.Alert)
         alertController.addAction(UIAlertAction(title: "Dismiss",
             style: UIAlertActionStyle.Default,handler: nil))

         self.presentViewController(alertController, animated: true, completion: nil)

     } else {
         performSegueWithIdentifier("final", sender: self)
     }
     return
}

【问题讨论】:

标签: ios swift string uitextfield


【解决方案1】:

您好,您可以通过检查 userName.text 字符数或 userName.text == "" 来检查空字符串,只要为空,它就会给您错误,并且 segue 不会执行

【讨论】:

  • 这比使用isEmpty 有什么改进?
  • 在您当前的情况下,它无法正常工作,所以我们有替代方案
【解决方案2】:

在 Swift 2 中,您可以使用保护语句和 where !text.isEmpty 来检查文本字段中是否包含文本。

guard let text = textfield.text where !text.isEmpty else {
    // do something if it's empty
    return
}
print(text) // do something if it's not empty

【讨论】:

    【解决方案3】:

    这样做的一个好方法是,创建 String 的扩展并在修剪空白字符后检查 isEmpty

    extension String {
    
       var isBlank: Bool {
           return trimmingCharacters(in: .whitespaces).isEmpty
       }
    }
    

    之后你可以像这样检查一个字符串:

    if userName.text!.isBlank {
         //do stuff
    }
    

    【讨论】:

      猜你喜欢
      • 2014-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-14
      • 2013-04-29
      • 1970-01-01
      • 1970-01-01
      • 2011-04-01
      相关资源
      最近更新 更多