Swift 如何在视图中临时存储数组和数据对象
How to temporarily store arrays and objects of data in a View in Swift
假设有一个烹饪应用程序,用户可以创建自己的食谱。该应用程序与 Firebase 集成,并从 Firebase 获取核心数据。
在视图中,我让用户创建食谱。因此,用户将输入名称、配料及其尺寸和设备。我需要以某种方式存储此数据以在视图中使用它,然后在用户按下保存按钮后将其保存在 Firebase 上。
我怎样才能暂时存储这些数据?
数据将类似于下面的示例。数组和对象的混合。
{
"User": 124213,
"RecipeName": "Some Name",
"createdDate": "Some Date",
"Ingredients": [
{
"ingredient": 123,
"size": 3
},
{
"ingredient": 234,
"size": 3
},
{
"ingredient": 294,
"size": 2
},
{
"ingredient": 736,
"size": 2
},
{
"ingredient": 150,
"size": 4
}
],
"Equipment": [
[ 123, 234 ],
[ 294, 736 ]
]
}
我不知道开发人员如何处理这种情况,他们需要在将数据发送到 Firebase 之前将数据暂时保存在 IOS 上。
如有任何想法或建议,我们将不胜感激。
根据您的需要使用结构或 类 定义您的数据结构,并使它们符合可编码:
struct Recipe: Codable {
let user: Int
let recipeName, createdDate: String
let ingredients: [Ingredient]
let equipment: [[Int]]
enum CodingKeys: String, CodingKey {
case user = "User"
case recipeName = "RecipeName"
case createdDate
case ingredients = "Ingredients"
case equipment = "Equipment"
}
}
// MARK: - Ingredient
struct Ingredient: Codable {
let ingredient, size: Int
}
一旦您需要 post 您的数据到 Firebase,将其转换为 JSON 和 post。
let dataRecipe = try? JSONEncoder().encode(myRecipeObject)
假设有一个烹饪应用程序,用户可以创建自己的食谱。该应用程序与 Firebase 集成,并从 Firebase 获取核心数据。 在视图中,我让用户创建食谱。因此,用户将输入名称、配料及其尺寸和设备。我需要以某种方式存储此数据以在视图中使用它,然后在用户按下保存按钮后将其保存在 Firebase 上。 我怎样才能暂时存储这些数据? 数据将类似于下面的示例。数组和对象的混合。
{
"User": 124213,
"RecipeName": "Some Name",
"createdDate": "Some Date",
"Ingredients": [
{
"ingredient": 123,
"size": 3
},
{
"ingredient": 234,
"size": 3
},
{
"ingredient": 294,
"size": 2
},
{
"ingredient": 736,
"size": 2
},
{
"ingredient": 150,
"size": 4
}
],
"Equipment": [
[ 123, 234 ],
[ 294, 736 ]
]
}
我不知道开发人员如何处理这种情况,他们需要在将数据发送到 Firebase 之前将数据暂时保存在 IOS 上。
如有任何想法或建议,我们将不胜感激。
根据您的需要使用结构或 类 定义您的数据结构,并使它们符合可编码:
struct Recipe: Codable {
let user: Int
let recipeName, createdDate: String
let ingredients: [Ingredient]
let equipment: [[Int]]
enum CodingKeys: String, CodingKey {
case user = "User"
case recipeName = "RecipeName"
case createdDate
case ingredients = "Ingredients"
case equipment = "Equipment"
}
}
// MARK: - Ingredient
struct Ingredient: Codable {
let ingredient, size: Int
}
一旦您需要 post 您的数据到 Firebase,将其转换为 JSON 和 post。
let dataRecipe = try? JSONEncoder().encode(myRecipeObject)