【发布时间】:2016-07-10 23:57:07
【问题描述】:
我有一个包含 50 多个问题的 iOS 应用。每个问题都有:
- 一个问题
- 正确答案
- 三个错误答案
- 图像名称
最初我尝试使用结构(如下所示)并为每个问题创建一个常量,当用户收到该问题时我可以调用/加载:
struct QuestionInfo {
var question: String
var correctAnswer: String
var wrongAnswer_1: String?
var wrongAnswer_2: String?
var wrongAnswer_3: String?
var imageName: String
}
但是,有人告诉我这是一个愚蠢的想法,我应该使用数组。我知道数组是用于这种类型的东西,但是我如何保持它的组织呢?
看来我会有六个数组:
let question = ["Is Mars a planet?", "Is Spain in Africa?", "+50 more"]
let correctAnswer = ["Yes", "No", "+50 more"]
//+Four more arrays
每个数组将包含 50 多个项目,每个问题将同时出现在六个不同的列表中,这让我很难保持井井有条。我应该为每个问题创建一个数组/结构,然后创建一个数组/结构数组吗?
let questionPackage = QuestionInfo(
question: "Is Mars a planet?",
correctAnswer: "Yes",
wrongAnswer_1: "No",
wrongAnswer_2: "No one knows.",
wrongAnswer_3: "It's a candy bar."
imageName: "MarsPhoto",
)
let questionPackage2 = QuestionInfo(
question: "Is Spain in Africa?",
correctAnswer: "No",
wrongAnswer_1: "Yes",
wrongAnswer_2: "It's up for debate",
wrongAnswer_3: "Duh, it's in South America."
imageName: "SpanishFlag",
)
//Array of structs
let array = [questionPackage, questionPackage2, etc]
我正在尝试根据最有效的运行方式和正常的设计模式进行选择。
【问题讨论】:
-
我认为您误解了对原始问题的评论;你的最后一个代码块中的结构数组是什么意思。您还可以创建一个 plist 文件来存储您的问题并在运行时将其加载到数组中,而不必拥有所有这些创建代码。