我正在制作一个小的问答iOS应用程序。我想将第一个问题随机化。我的代码如下。
let allQuestions = QuestionBank()
var pickedAnswer : Bool = false
//Place your instance variables here
@IBOutlet weak var questionLabel: UILabel!
@IBOutlet weak var scoreLabel: UILabel!
@IBOutlet var progressBar: UIView!
@IBOutlet weak var progressLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
let firstQuestion = allQuestions.list.randomElement();
questionLabel.text = firstQuestion.questionText
}
我正在使用.list访问数组,但我希望每次启动应用程序时,第一个问题是一个随机元素。任何帮助将不胜感激。
答案 0 :(得分:2)
看起来firstQuestion
可以是nil
,所以它的类型为Question?
。如果要使用其questionText
属性,则必须解开问题。一种方法是通过可选绑定
if let firstQuestion = allQuestions.list.randomElement() {
questionLabel.text = firstQuestion.questionText
}
答案 1 :(得分:1)
如果list
为空,将没有可供选择的元素,并且randomElement
将返回nil
。这类似于.first
或.last
属性。
您可以使用可选的链接简单地处理此问题:
let firstQuestion: Question? = allQuestions.list.randomElement()
questionLabel.text = firstQuestion?.questionText
由于list
可能永远不会为空,因此这种情况实际上永远不会发生。我们只需要处理这个问题,因为编译器无法确定。