如何存储大型结构数组 - Swift

时间:2015-06-16 17:14:08

标签: arrays swift struct

我正在创建一个有两种模式的测验应用程序(我们称之为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!")
]

1 个答案:

答案 0 :(得分:1)

将问题存储在磁盘上的两种方法是: 1)核心数据 2)Sqlite

我建议使用以下架构来检索存储的问题:

1)在核心数据/ sqlite中存储250个问题,每个问题与1-250号相关联。

2)当您需要随机选择50个问题时,生成50个随机数并检索与您生成的随机数相关的问题。

这种方法也可以帮助您存储250多个问题。

解释核心数据或sqlite超出了本答案的范围。您可以在线轻松找到这些教程。

关于保存swift文件: 您可以使用问题在swift文件中声明结构。我认为这可以解决250个问题,但这种方法的问题在于它会占用内存。因此,如果您想在以后添加更多问题,这是不可扩展的。