ios - 如何在 iOS/Swift 中存储并保存更新的问题和答案集

标签 ios swift sqlite nscoding userdefaults

我正在启动一个相对简单的应用程序,它提出了一系列多项选择题。将有 4 个可能的答案 (A/B/C/D),并且可能有不止一个选项是正确的。在操作这样一个对象(问题的一个实例及其随附的答案)时,我创建了以下数据结构:

public class QAData {
var questionText: String
var answers: [String] // Will contain 4 separate answer options
var correct: [Bool] // contains 4 boolean values to match against options of answers to record correct answer/s
var selected: [Bool] // Will be updated to true if user selects relevant answer option

}

我的问题是在我的应用程序中存储所有问题和答案的最佳方式是什么,它还允许我更新“选定”属性并在应用程序启动时存储它?我最初会提出 100 个问题,但随着时间的推移可能会增加到 1000 个问题。

我考虑过的选项是拥有一个包含保存到用户默认值的所有数据的数组 - 也许并不是它真正的设计目的?

使用 NSCoding 持久化对象?

或者将数据存储在 SQLite 数据库中?

有什么建议吗?

最佳答案

我想在 UserDefault 中保存大量数据不是一个好方法。由于您的问题数量可能会增加,这将对您的应用程序性能产生严重影响。

我认为 coredata 框架适合您的要求。您可以管理 coredata 中的一个实体,该实体将保留您的所有问题及其四个选项、 bool 答案和用户选择的答案。您可以使用 coredata 轻松保存、更新和检索本地数据库中的数据。

关于ios - 如何在 iOS/Swift 中存储并保存更新的问题和答案集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46262921/

相关文章:

ios - 更新 View Controller 之间的状态栏样式

ios - 全局缓存服务器数据并刷新 View

ios - 如何将 Xcode 应用程序部署到 iPhone?

ios - 如何使用自动布局调整其 super View 的方形 View 大小

sqlite - 如何忽略sqlite3插入失败以允许tcl脚本在失败后继续?

ruby-on-rails - 您推荐哪个 RVM 和 Ruby 版本?

ios - 如何在幻灯片中显示pdf文件?(iphone应用开发)

swift - 检查函数是否被调用?

ios - 在 Swift 中的标签栏上方显示 iAd 横幅

java - Android:检查高分SQL表并添加分数