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)