【发布时间】:2020-05-11 11:55:54
【问题描述】:
我是一名初学者,正在开发一款功能类似于高尔夫记分卡的应用。我的第一个问题是在尝试接受 9 个文本字段的(原型)系列中的用户输入,以便用户可以输入他们的分数,然后是最后一个不可编辑的 textView,它将显示 9 个孔的总数。我试图让它成为一个不断更新的运行总数。
我尝试将每个 textField 的输入传递到一个数组中,并将数组的总和返回到 textView,但仍然存在来自 textField 的数据类型是字符串的问题,因为我只会处理整数。
我笨拙的第一关如下——
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var holeOneScore: UITextField!
@IBOutlet weak var holeTwoScore: UITextField!
@IBOutlet weak var holeThreeScore: UITextField!
@IBOutlet weak var holeFourScore: UITextField!
@IBOutlet weak var holeFiveScore: UITextField!
@IBOutlet weak var holeSixScore: UITextField!
@IBOutlet weak var holeSevenScore: UITextField!
@IBOutlet weak var holeEightScore: UITextField!
@IBOutlet weak var holeNineScore: UITextField!
@IBOutlet weak var totalForFrontNine: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
//MARK: Calculate Scores
@IBAction func calculate(_ sender: Any) {
let hole1:Int = Int(holeOneScore.text!)!
let hole2:Int = Int(holeTwoScore.text!)!
let hole3:Int = Int(holeThreeScore.text!)!
let hole4:Int = Int(holeFourScore.text!)!
let hole5:Int = Int(holeFiveScore.text!)!
let hole6:Int = Int(holeSixScore.text!)!
let hole7:Int = Int(holeSevenScore.text!)!
let hole8:Int = Int(holeEightScore.text!)!
let hole9:Int = Int(holeNineScore.text!)!
let totalArray = [hole1, hole2, hole3, hole4, hole5, hole6, hole7, hole8, hole9]
let totalScore = totalArray.reduce(0, +)
totalForFrontNine.text = String(totalScore)
print(totalForFrontNine!)
}
它起作用了,但几乎没有。任何修改或完全刷新的想法都可以!我不依赖任何东西,因为我正在使用这个项目来教我基础知识。
在此先感谢您,干杯 - glassGarrett
【问题讨论】:
-
使用 IBOutletCollection ... 而不是单个实体 ... 这将在 4-5 行中结束您的代码 .... 搜索 IBOutlet 集合