【问题标题】:Guard statement in swift for error handling [duplicate]swift中的Guard语句用于错误处理[重复]
【发布时间】:2016-04-18 11:55:11
【问题描述】:

我尝试运行下面的语句,但它在代码中被跳过了。

guard let num1 = num1Input.text else
{
    show("No input in first box")
    return
}

谁能告诉我为什么当文本字段为空白时此语句没有运行?

【问题讨论】:

标签: ios swift


【解决方案1】:

您可以使用where 子句来检查非零非空

guard let num1 = num1Input.text where !num1.isEmpty else {
    show("No input in first box")
    return
}

【讨论】:

    【解决方案2】:

    您应该检查文本的长度,而不是 nil 即:

    guard num1Input.text.characters.count > 0 else {
      ...
    }
    

    如果文本是可选的,你可以这样做。

    guard let num1 = num1Input.text where num1.characters.count > 0 else {
      ...
    }
    

    【讨论】:

    • 请使用.isEmpty
    【解决方案3】:

    这个语句是测试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
    猜你喜欢
    • 2012-09-17
    • 1970-01-01
    • 1970-01-01
    • 2017-03-03
    • 1970-01-01
    • 1970-01-01
    • 2017-02-17
    • 1970-01-01
    • 2015-05-25
    相关资源
    最近更新 更多