问题描述
我有多个“产品”类别的项目。我正在根据id和variantId比较产品。
class Product: Equatable {
let id: Int
let name: String
var variationId: Int
var quantity: Int
init(id: Int,name: String,variationId: Int,quantity: Int) {
self.id = id
self.name = name
self.variationId = variationId
self.quantity = quantity
}
static func == (lhs: Product,rhs: Product) -> Bool {
return
lhs.id == rhs.id && lhs.variationId == rhs.variationId
}
}
在产品视图控制器中,我有一个结构Variationoption和一个变量product,如下所示。
struct Variationoption {
var id: Int
var name: String
var option: String
}
var product: Product!
当用户更改颜色选项时,它会更改该产品的variantId属性
self.product.variationId = variationoption.id
用户可以为产品选择其他颜色,并以此来更改variantId。将产品添加到购物车时,addItemToCart函数将检查购物车中是否存在该产品。如果存在该产品,则该产品ID的数量会更改,否则该产品将被添加到购物车中。
我遇到的问题是这个。用户选择一个选项,变体ID会更改,产品已添加到购物车中,但不是添加新产品,而是将变体ID更改为购物车产品数组中已有的产品。
如何确定购物车中产品数组内的产品不会更改版本ID属性?
func addItemToCart(product: Product) {
if let cartItemIndex = cartItems.firstIndex(of: product) {
cartItems[cartItemIndex].quantity += product.quantity
} else {
cartItems.append(product)
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)