我分配了一个计算器来计算给定输入的平均数。
我需要接受并显示在range
中输入的数字(介于0和100之间)(“添加”按钮)。并计算并显示平均值。
有一个UITextField
,我在其中输入数字,然后按ADD按钮将其显示在label/textview
中(不确定使用哪个)。
数字应附加到数组中,以便使用averageOf()
函数。
我尝试显示数字,但是label
代替了新数字,而不是添加了新数字。我很快就很陌生,不确定如何编码以仅接受一定范围的数字。
我的文本字段:
@IBOutlet weak var txtInput: UITextField!
添加按钮:
@IBAction func btnAdd(_ sender: UIButton) {
let testScore = txtInput.text
scoreDisplay.text = testScore
}
数字的输出/显示应为,例如40, 23.6, 98.2, 74.4
我得到的只是数字的替换。
答案 0 :(得分:1)
您应该使用+=
而不是=
(替换整个值)进行追加
scoreDisplay.text += ", \(testScore)"
scoreDisplay.text = scoreDisplay.trimmingCharacters(in: CharacterSet(charactersIn: " ,"))
修剪用于删除字符串中的第一个,
。
由于text
的{{1}}属性为UILabel
,因此您实际上不能使用Optional<String>
。所以:
+=
答案 1 :(得分:0)
编辑:我发现了问题。 scoreDisplay.text和testScore.text都是可选的,因此您必须确保它们具有值。
@IBAction func btnAdd(_ sender: UIButton) {
guard let testScore = txtInput.text, let scoreDisplay = scoreDisplay.text else { return }
scoreDisplay.text = scoreDisplay + testScore
}
此外,如果您想在每个数字的中间添加“,”:
@IBAction func btnAdd(_ sender: UIButton) {
guard let testScore = txtInput.text, let scoreDisplay = scoreDisplay.text else { return }
scoreDisplay.text = "\(scoreDisplay), \(testScore)"
}
PD:=仅将您的字符串替换为其他字符串,+ =追加新字符串。