ios - 如何检查用户输入的答案是否有字母,如果有,您如何将该答案默认为 0?
问题描述
这是我到目前为止的代码,现在当用户输入任何字母时,我的标签什么都不显示,我想弄清楚的是如何把什么都没有“”变成0。我试着在我的“上做一个if语句label.txt =“的但没有成功。找到我想要的结果的更好方法是什么?
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var game1: UITextField!
@IBOutlet weak var game2: UITextField!
@IBOutlet weak var game3: UITextField!
@IBOutlet weak var series: UILabel!
@IBOutlet weak var average: UILabel!
@IBOutlet weak var high: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
@IBAction func calculate(_ sender: Any) {
self.view.endEditing(true)
guard
let text1 = game1.text,
let text2 = game2.text,
let text3 = game3.text
else { return }
guard
let game1Results = Int(text1),
let game2Results = Int(text2),
let game3Results = Int(text3)
else { return }
let gameResultsArray = [game1Results, game2Results, game3Results]
let sumArray = gameResultsArray.reduce(0, +)
let positiveArray = gameResultsArray.filter {
(item: Int) -> Bool in return item > 0
}
var avgArrayValue = 0
if positiveArray.count == 0
{
avgArrayValue = 0
}else {
avgArrayValue = sumArray / positiveArray.count
}
series.text = "\(sumArray)"
average.text = "\(avgArrayValue)"
if let maximumVal = gameResultsArray.max() {
high.text = String(maximumVal)
}
}
}
解决方案
这是您需要的,转换String
为Int
并给出默认值 0。而不是guard let return
使用此方法:
而不是这个:
guard let game1Results = Int(text1) else { return }
用这个:
let game1Results = Int(text1) ?? 0
推荐阅读
- image - 将 Pytorch 的图像格式从 NHWC 更改为 NCHW
- python - Python读取名称中带有重音的xls表(xedses,xc3)
- python-3.x - 使用 Python 捕获屏幕/窗口内容
- asp.net-mvc - 为主机设置连接字符串
- python - 如何防止字符串之间不同大小的空格?
- python - 如何从 urllib python 获取网站的特定部分
- vuepress - 如何向 VuePress 添加代码高亮显示?
- ruby - 如何在 Ruby 中使用表情符号将 ASCII 字符串转换为 UTF 8 字符串
- python - 根据字典键将字典值分配给 DataFrame 列
- vb.net - 串行端口上的线程