我有这样一个结构体:
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
...