【问题标题】:How to return(skip the rest of) a function in swift if conditions are met如果满足条件,如何快速返回(跳过其余部分)函数
【发布时间】:2018-05-02 20:09:00
【问题描述】:

我设置了一个 segue 以在按下按钮时执行。如果当前视图控制器中的文本字段为 nil,我想结束函数并使 segue 无效。到目前为止没有运气。我该怎么做呢?这是我所拥有的:

@IBAction func myButton(_ sender: Any) {
    if textField.text == nil {

        return

    } else {

    performSegue(withIdentifier: "theSegue", sender: sender)

    }
}

提前致谢。

【问题讨论】:

    标签: swift xcode uitextfield segue ibaction


    【解决方案1】:

    尽管文档暗示(声明为可选),text 属性实际上不是nil此字符串默认为@"")。

    我建议另外检查空字符串。

    @IBAction func myButton(_ sender: Any) {
       guard let text = textField.text, !text.isEmpty else { return }
       performSegue(withIdentifier: "theSegue", sender: sender)
    }
    

    【讨论】:

    • 您回答问题的速度更快。删除我的答案。
    • 谢谢,这有帮助。如果我有多个条件,我该怎么做?例如:两个字符串,我想用 .isEmpty 测试这两个字符串
    • 您可以添加多个条件逗号分隔:guard condition1, condition2 else { ... condition 代表 let ... .isEmpty 或其他计算结果为 Bool 的内容
    【解决方案2】:

    使用guardif let

    guard let text = textField.text else {
                return
            }
    

    您的代码会这样:

    @IBAction func myButton(_ sender: Any) {
    
        guard let text = textField.text else {
                return
            }    
        performSegue(withIdentifier: "theSegue", sender: sender)
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多