gpt4 book ai didi

ios - 创建随机数的类实例 - Swift

转载 作者:搜寻专家 更新时间:2023-11-01 06:28:55 25 4
gpt4 key购买 nike

我正在尝试使用随机数量的练习生成随机“锻炼”。

每个练习都需要有一个名称(来自一个数组)和一个重复次数(一个随机数,最终将根据它是什么类型的练习有“上限和下限”(例如俯卧撑最多 10 次) ,但只有 1 个用于“500m 行”。但这可以稍后出现!现在,我正在尝试生成随机数量的类实例(然后我将通过 segue 传递这些实例并放入 tableView ,假设这是可能的)

这是我的代码,目前只是在 Playground 上:

import UIKit

let exerciseArray = ["squats", "pushups", "lunges", "jumping jacks"]

class exerciseInWorkout {

var exerciseName : String
var exerciseReps : Int

init(name: String, reps: Int) {
exerciseName = name
exerciseReps = reps
}

}

let randomkey = Int(arc4random_uniform(4))
let numberOfExercisesInWorkout = Int(arc4random_uniform(10))

// Manually creating a new object of exerciseInWorkout with a random exercise and a random number of reps

let exerciseOne = exerciseInWorkout(name:exerciseArray[randomkey], reps:Int(arc4random_uniform((30))))

//print result to make sure it works

print(exerciseOne.exerciseName, exerciseOne.exerciseReps)

//Have some function here which creates a number of class instances based on the "numberOfExercisesInWorkout" constant

如果我完全走错了路,请随时告诉我,但我认为我离得不远(希望...)

最佳答案

对此可能有很多不同的(有效的)方法。其中之一可能是这样的:

let exerciseArray = ["squats", "pushups", "lunges", "jumping jacks"]

struct Exercise {
let name: String
let reps: Int
}

func randomInt(upperBound: UInt32) -> Int {
return Int(arc4random_uniform(upperBound))
}

let numberOfExercisesInWorkout = randomInt(upperBound: 10)

let exercises: [Exercise] = (1...numberOfExercisesInWorkout).map { _ in
let randomKey = randomInt(upperBound: UInt32(exerciseArray.count))
return Exercise(name: exerciseArray[randomKey], reps: randomInt(upperBound: 10))
}

print(exercises)

输出是这样的:

[Exercise(name: "lunges", reps: 8), Exercise(name: "jumping jacks", reps: 6), Exercise(name: "lunges", reps: 4), Exercise(name: "squats", reps: 9), Exercise(name: "jumping jacks", reps: 5), Exercise(name: "squats", reps: 9)]


注意:您还可以修改 (randomInt) 辅助函数以考虑我猜的 lowerBound

关于ios - 创建随机数的类实例 - Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49984678/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com