如何构建包含段落的可下载内容包?

时间:2018-09-15 17:29:38

标签: ios swift data-structures

我正在制作闪存卡应用。每个闪存卡具有以下内容 -一个话题 - 一个问题 -答案

答案可以是多个段落,例如简短的文章。

例如: 主题:营养 问题:什么是古人? 答:古旧是低碳水化合物饮食。 \ n 它依赖特定的肉类和蔬菜作为饮食的主食。你不能在古堡上吃面包。

CSV似乎不是一种选择,除非我用\ n代替~~

该段落中也可能带有引号。我希望能够下载一整套抽认卡供脱机使用,因此仅从数据库中提取不是一个理想的选择。

我是否可以使用良好的格式/结构来捆绑一整套抽认卡,以便在本地系统上轻松下载/解析/保存?

1 个答案:

答案 0 :(得分:0)

您可以按以下方式表示数据:

struct Card: Codable {
    let topic: String
    let question: String
    let answer: String
}

然后,如果您有一个数组let card = [Card],则可以使用JSONEncoder转换为JSON,并使用Card从JSON转换为JSONDecoder

let cards = [Card(topic: "Nutrition", question: "What is paleo?", answer: "Paleo is a low carb diet.\nIt relies on specific meats and vegetables as the staple of the diet. You cannot eat bread on paleo.")]

let data = try JSONEncoder().encode(cards)

let string = String(data: data, encoding: .utf8)!

print(string)

// [{"topic":"Nutrition","question":"What is paleo?","answer":"Paleo is a low carb diet.\nIt relies on specific meats and vegetables as the staple of the diet. You cannot eat bread on paleo."}]

let newCards = try JSONDecoder().decode([Card].self, from: data)