我的视图控制器在我的Xcode项目中连接了我的swift文件。我有2个文本字段(一个用于输入已打过的游戏数量,另一个用于输入得分数)。当有人点击计算按钮时,我希望代码将游戏数量除以得分点数,并在标签上显示每场比赛的平均点数。我在下面提供了视图控制器的屏幕截图。
答案 0 :(得分:1)
所以你要遇到的最重要的事情就是你试图转换String?到Double,所以你真的需要验证你的所有数据。我会沿着以下路线走一条路。
func clickButton(sender:UIButton){
guard let pointsText = numberOfPoints.text, !pointsText.isEmpty else {
// alert that the text field is empty
return
}
guard let gamesText = numberOfGames, !gamesText.isEmpty else {
// alert that the text field is empty
return
}
guard let points = Double(pointsText), points >= 0 else {
// alert that you can't have negative points or that the entered text did not convert to a number
return
}
guard let games = Double(pointsText), games > 0 else {
// alert that you can't have negative or zero games or that the entered text did not convert to a number
return
}
let pointAverage = points/games
outputlabel.text = "\(pointAverage)"
}
你总是要小心使用可选值,因为如果它们是nil并且你试图强行打开它们,应用程序就会崩溃。同样,当从String转换为数字时,您可以遇到问题,因为它们作为选项返回,因为" ABC"不会转换为数字,但是" 123"将
答案 1 :(得分:-1)
您可以简单地将viewcontroller中的textfield连接到您的类并计算这样的点。这只是clickButton函数的一个示例。
func clickButton(sender:UIButton){
let point = Int(numberofgames.text)/Int(numberofpoint.text)
outputlabel.text = String(point)
}