【问题标题】:How to temporarily store arrays and objects of data in a View in Swift如何在 Swift 中的视图中临时存储数据数组和对象
【发布时间】:2020-09-04 20:46:22
【问题描述】:

假设有一个烹饪应用程序,用户可以创建自己的食谱。该应用程序与 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 上。

感谢任何想法或建议。

【问题讨论】:

    标签: arrays swift object swiftui swift5


    【解决方案1】:

    根据您的需要使用结构或类定义您的数据结构,并使它们符合可编码:

    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
       }
    

    一旦您需要将数据发布到 Firebase,请将其转换为 JSON 并发布。

    let dataRecipe = try? JSONEncoder().encode(myRecipeObject) 
    

    【讨论】:

    • 感谢非常有帮助。我发布了一个关于更新此结构here 中的值的问题。如果你能回答,那就太好了。
    猜你喜欢
    • 1970-01-01
    • 2016-03-16
    • 2020-05-12
    • 2018-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-28
    相关资源
    最近更新 更多