【问题标题】:SwiftUI - struct embedded in struct with UUID()SwiftUI - 使用 UUID() 嵌入结构中的结构
【发布时间】:2019-06-22 08:26:46
【问题描述】:

使用SwiftUI,我在struct 中有一个embedded struct 喜欢

   struct Order Identifiable {
       var id = UUID()
       var includeSoap: Bool = false
       var includeTowel : Bool = false
       var quantity : Int
   }

   struct CompletedOrder Identifiable {
       // var id = UUID() or var id = order.id
       var order : Order
       var summary : String
       var purchaseDate : String
   }

为了以后使用我需要使用Identifiable关键字。

如何避免额外的 UUID()?我可以尝试将 Order.id 复制到 CompletedOrder.id 但不确定这是否是 XCode 中的错误,但我在那里遇到了奇怪的错误。

无论如何,最好的方法是什么?我需要两个结构'Identifiable' 还是有一种继承?这有什么优点和缺点?我再次在 XCode 中得到了奇怪的结果。但我希望是我;)

谢谢

【问题讨论】:

  • 你想达到什么目的?与订单相同的 UUID?举一个你想要的例子。
  • 我想在CompletedOrder struct 中重用Order struct 以避免复制和输入错误。为了构建一些测试,我想拥有相同的 id 双倍是可以的,但后来我想,当订单已满时,删除 Order.id 并只保留 CompletedOrder.id。所以,我喜欢使用您 (M.Hosseini) var id: UUID { order.id } 提供的代码,然后删除 Order.id,但是如何设置闭包? CompletedOrder var id 类似于 didset
  • 对不起,我不明白。 SwiftUI 是新的,XCode 是错误的,我是 Swift 的新手。为什么是-2?这是一个愚蠢的问题吗?

标签: swift struct swiftui


【解决方案1】:

自行返回order.id

struct CompletedOrder: Identifiable {
    var id: UUID { order.id }
    var order: Order
    var summary: String
    var purchaseDate: String
}

【讨论】:

  • 谢谢。搞砸了作业=
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-15
  • 1970-01-01
  • 1970-01-01
  • 2017-08-27
相关资源
最近更新 更多