我正在创建一个有两种模式的测验应用程序(我们称之为A& B)。每种模式从超过250个值的结构数组中抽取50个随机随机问题。为了澄清,模式A和模式B都有单独的问题池,超过250个问题,所以总共有大约500个问题。
如何最好地存储这些结构数组,以便在用户选择所需的测试时将其拉入我的View Controller。
以下是模式问题池的示例。
// Question models
class QuizQuestion {
let question: String!
let answer: Bool!
let explanation: String!
var usersAnswer: Bool?
var answerSubmitted: Bool?
init(question: String, answer: Bool, explanation: String) {
self.question = question
self.answer = answer
self.explanation = explanation
}
}
var questions = [
QuizQuestion(question: "Do I like coffee?", answer: true, explanation: "Because it's awesome!"),
QuizQuestion(question: "Is bacon god's gift to mankind?", answer: true, explanation: "Because it's awesome!"),
QuizQuestion(question: "Should I take a nap right now?", answer: true, explanation: "You gotta review some code!"),
QuizQuestion(question: "Should I take a nap right now?", answer: true, explanation: "You gotta review some code!")
]
答案 0 :(得分:1)
将问题存储在磁盘上的两种方法是: 1)核心数据 2)Sqlite
我建议使用以下架构来检索存储的问题:
1)在核心数据/ sqlite中存储250个问题,每个问题与1-250号相关联。
2)当您需要随机选择50个问题时,生成50个随机数并检索与您生成的随机数相关的问题。
这种方法也可以帮助您存储250多个问题。
解释核心数据或sqlite超出了本答案的范围。您可以在线轻松找到这些教程。
关于保存swift文件: 您可以使用问题在swift文件中声明结构。我认为这可以解决250个问题,但这种方法的问题在于它会占用内存。因此,如果您想在以后添加更多问题,这是不可扩展的。