【发布时间】:2018-11-24 16:22:49
【问题描述】:
我已经开始使用 Swift 制作一个基本的问答游戏。我已经编写了一个结构来定义我想要与每个问题相关的内容:
struct Question {
let question: String
let answers: [String]
let correctAnswer: Int
}
游戏将是一个基本的数学测验,因此会显示随机数学问题。我编写了一个函数来随机化问题并获得答案:
func questionAnswerBuilder() -> (question: String, answer: String) {
let first: Int = randomNumber()
let second: Int = randomNumber()
let arr = [first,second].sorted(by: >)
let firstAsString = String(arr[0])
let secondAsString = String(arr[1])
let questionString = "\(firstAsString) + \(secondAsString)"
let question = questionString
//Answer:
let answerString = first + second
let answer = String(answerString)
return (question, answer)
}
我已经在操场上进行了测试,效果很好。每次它创建一个随机数并将其与正确答案一起输出。现在我想在每个问题中使用它...
var questionTest = questionAnswerBuilder()
var questions: [Question] = [
Question(question: questionTest.question, answers: [randomAnswer(), randomAnswer(), questionAnswerBuilder().answer, randomAnswer()], correctAnswer: 2),
Question(question: questionTest.question, answers: [randomAnswer(), randomAnswer(), questionAnswerBuilder().answer, randomAnswer()], correctAnswer: 2)
]
仅供参考,此处未显示randomAnswer() 函数。它基本上只是一个随机数生成器。
当我将所有这些输入到 Xcode 中时,我收到以下消息:
Cannot use instance member 'questionTest' within property initializer; property initializers run before 'self' is available.
我目前在自己的 swift 文件中有 questionAnswerBuilder() 函数。我尝试将它移动到与我的 questions 变量相同的文件中,但我仍然遇到同样的错误。我也尝试过使 questionTest 变量变得懒惰,但这并没有什么区别。
请请有人指出我哪里出错了!
提前致谢!
【问题讨论】: