【发布时间】:2018-06-18 23:37:27
【问题描述】:
代码的目的是在每次按下按钮时生成随机练习和代表次数(从数组中选择)。
但是,按钮只会在第一次按下时执行此操作,之后不会再次执行此操作。
问题:如何确保每次按下按钮时都会生成随机数量的代表和锻炼(从我的数组中选择)?
import UIKit
class ViewController: UIViewController
{
var clickCount = 0
let exercises = ["Push Ups", "Squats", "Burpees", "Sit Ups"]
let reps = ["5", "6", "7", "8", "9", "10"]
lazy var randomIndex1 = Int(arc4random() % UInt32(exercises.count))
lazy var randomIndex2 = Int(arc4random() % UInt32(reps.count))
@IBOutlet weak var countLabel: UILabel!
@IBOutlet weak var excerciseType: UILabel!
@IBOutlet weak var repVolume: UILabel!
@IBAction func buttonPress(_ sender: UIButton) {
clickCount+=1
countLabel.text="You've Tapped \(clickCount) times"
excerciseType.text="\(exercises[randomIndex1])"
repVolume.text="\(reps[randomIndex2])"
}
}
【问题讨论】:
-
在您的按钮操作函数中移动随机索引。你现在拥有它的方式,它们在你第一次使用它们时被延迟初始化,并且数字不会改变。
-
推荐。不要使用
arc4random(),这可能会导致modulo bias,而是使用arc4random_uniform。
标签: ios arrays swift button random