在Swift

时间:2017-05-19 13:34:16

标签: ios swift uitextfield

我的视图控制器在我的Xcode项目中连接了我的swift文件。我有2个文本字段(一个用于输入已打过的游戏数量,另一个用于输入得分数)。当有人点击计算按钮时,我希望代码将游戏数量除以得分点数,并在标签上显示每场比赛的平均点数。我在下面提供了视图控制器的屏幕截图。

enter image description here

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)

}