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 - 让 Switch Control 用户通过按下开关触发操作

swift - 在 Mac Catalyst 应用程序中,如何设置可拖动区域以在屏幕上移动窗口?

sql - 序列化还是 SQlite?

java - 在 Java 中存储、检索和比较日期的最佳方式

ios - 具有现有分配的变量上的 Swift EXC_BAD_ACCESS

ios - 如何移动低值图像?

ios - MagicalRecord 如何在关系中添加对象

ios - 获取内存不足崩溃的通知

swift - 翠鸟:没有这样的模块 'CommonCrypto'

Android - SD 卡上的 SQLite 数据库