如何引用数组中当前已选中的随机元素?(Swift场景)
解决方案
你无法通过tasksArray.???????的形式直接获取之前选中的随机元素,因为数组本身不会记录上一次随机选取的结果。要复用已选中的任务,正确做法是把第一次选中的元素存到单独变量中,之后直接调用该变量即可:
- 定义存储当前任务的变量
在合适的作用域(比如类的属性)中声明变量:
var currentTask: String?
- 第一次选取并存储随机任务
替换你原来的赋值代码,把选中的任务同时存入变量:
currentTask = tasksArray.randomElement() myLabel.text = currentTask
- 复用已选中的任务
在需要提示错误的代码中直接使用currentTask:
// 安全写法(避免nil崩溃) startLabel.text = "WRONG! TRY AGAIN. \(currentTask ?? "No task selected")" // 如果你能确保currentTask一定有值,也可以强制解包 // startLabel.text = "WRONG! TRY AGAIN. \(currentTask!)"
为什么原方法不行?
每次调用tasksArray.randomElement()都会重新生成一个新的随机元素,所以直接写tasksArray.randomElement()!会得到全新的任务,而非之前选中的那一个。
内容的提问来源于stack exchange,提问作者Afanasiy Kuleshov
相关产品推荐
相关产品推荐

