我正在开始一个相对简单的应用程序,它提出了一系列多项选择题。将有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数据库中?
有什么建议吗?
答案 0 :(得分:0)
我想在UserDefault中保存大量数据并不是一个好方法。随着您的问题数量可能会增加,它会严重影响您的应用程序性能。
我认为coredata框架适合您的要求。您可以在coredata中管理一个实体,它将通过四个选项,布尔答案和用户选择的答案来保留您的所有问题。您可以使用coredata轻松地保存,更新和检索本地数据库中的数据。
答案 1 :(得分:0)
您可以将数据保存在.Plist文件或CoreData / Sqlite数据库中。如果所有Q / A都是静态的,则更喜欢.plist文件。
答案 2 :(得分:0)
如果Q& A更不那么静态,只能由您更新,请将它们存储在资产中(例如在HTML文件中)并阅读此文件以访问它们。