簡體   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