繁体   English   中英

如何存储大型数组-Swift

[英]How to store large arrays of structs - Swift

我正在创建一个具有2种模式的测验应用程序(我们称它们为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)核心数据2)Sqlite

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

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

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

这种方法还将帮助您存储250多个问题。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM