如何在可编码结构体中创建列表并跟踪项目的位置?



我有这样一个结构体:

struct Item: Codable {
let uniqueId: String
let id: String
let productId: String
let name: String
let price: String
let listPrice: String
let sellingPrice: String
let totalRow: String
let additionalInfo: AdditionalInfo
let productCategoryIds: String
let productCategories: [String: String]
var quantity: Int
let seller: String
let imageUrl: String
let detailUrl: String
let availability: String
let measurementUnit: String
let unitMultiplier: Double
}

我需要跟踪项目的位置。在另一个视图和结构体中,我使用了firstIndex(of: item)

let index = orderForm?.items.firstIndex(of: item) ?? 0
itemDictionary[TagParameterFirebase.index] = index.

但是Xcode显示了一个错误,因为这个结构是coable的,另一个结构是EQUATABLE的。

我能做什么?

我需要发送一个带有产品索引的事件。

如果uniqueId是它所建议的,使用其他不需要Equatable的API

let index = orderForm?.items.firstIndex{$0.uniqueId == item.uniqueId} ?? 0

或者采用Equatable,这很容易

struct Item: Codable, Equatable  {
static func ==(lhs: Item, rhs: Item) -> Bool {
lhs.uniqueId == rhs.uniqueId
}

let uniqueId: String
let id: String
...

相关内容

  • 没有找到相关文章

最新更新