在将文本字段传递给函数之前,如何测试它是否为空:

How do you test a textField isn’t empty before passing it to a function:

我有一个接受数字的文本框。
在数字键盘区域外点击以关闭键盘时,它会将文本字段值传递给函数。

当文本字段为空时,出现 NIL 解压可选错误,它崩溃了。

我正在尝试找到一种方法,当文本字段中没有任何内容时将“0”传递给变量。

变量

@IBOUTLET weak var per1kCollector: UITextField?
var per1k = 0

关闭键盘并调用函数的处理程序 per1k 获取文本域 如果 collector.text 为 NIL

,per1k 需要一个 0
@objc func handleTap(_ recognizer: UITapGestureRecognizer) {
    print("closing number pad")
    
            view.endEditing(true)
            per1k = (Int(per1kCollector!.text!)! ?? 0)

            doSomeMath()
    
}

这一直在声明“无法将类型 'int' 的值转换为预期的参数类型 'string'。但是,我正在使用文本字段的 Int,并且 per1k 是 int 类型。?? ??

任何时候你的代码说 ! 你应该 预期 崩溃。尽量避免它。几乎不需要它。在这种情况下只需使用问号:

 per1k = Int(per1kCollector?.text ?? "0") ?? 0