0

我正在启动一个相对简单的应用程序,它提出了一系列多项选择题。将有 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 数据库中?

有什么建议吗?

4

3 回答 3

0

我想在 UserDefault 中保存大量数据不是一个好方法。随着您的问题数量可能会增加,它将严重影响您以后的应用程序性能。

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

于 2017-09-17T11:23:35.913 回答
0

您可以将数据保存在 .Plist 文件或 CoreData/Sqlite 数据库中。如果所有 Q/A 都是静态的,那么更喜欢 .plist 文件是更好的方法。

于 2017-09-17T11:39:48.513 回答
0

如果 Q&A 不太静态并且只能由您更新,请将它们存储在资产中(例如,在 HTML 文件中)并阅读此文件以访问它们。

于 2017-09-17T12:16:48.260 回答