如何从对象数组中更新键中的值?

时间:2018-05-19 03:57:19

标签: ios swift

如何从对象数组更新key中的值?

我有一个对象数组。我需要更改一个键的值。这意味着我需要更改"quantity":"2","id":"1"。 之前:"quantity":"1","id":"1"

如何改变?

在tableviewcell中:

class ChartCell: UITableViewCell {
    @IBOutlet weak var name: UILabel!
    @IBOutlet weak var price : UILabel!
    @IBOutlet weak var delete:UIButton!
    @IBOutlet weak var itemQuantityStepper:UIStepper!
    @IBOutlet weak var itemQuantityLabel:UILabel?

    var quantity:Int {
        get {
            if (self.itemQuantityStepper != nil) {
                return Int(self.itemQuantityStepper!.value)
            }

            return 0
        }

        set {
            self.setItemQuantity(quantity)
        }
    }

    override func awakeFromNib() {
        super.awakeFromNib()
    }

    var cartadd : ((ChartCell) -> Void)?

    @IBAction func clickcartaddButton(sender: UIButton) {
        let value = Int(itemQuantityStepper!.value)
        setItemQuantity(value)

        cartadd?(self)
    }

    func setEventData(carts:CartModel)
    {
        self.name.text = carts.cartname
        self.price.text = carts.cartsum

        self.itemQuantityStepper.value = 1
    }

    func setItemQuantity(_ quantity: Int) {
        let itemQuantityText = "Qty. \(quantity)"
        itemQuantityLabel?.text = itemQuantityText

        itemQuantityStepper?.value = Double(quantity)
    }
}

我首先在tableview中列出了数据。在tableviewcell中我使用了stepper。因此,当步进行动时,数量增加。 我有数量= 2.我需要在模型中传递此值。我该怎么做?

1 个答案:

答案 0 :(得分:0)

您需要将此步进值传递给您要加载到tableview的数组的对象

按照步骤从数组中获取该对象。

将单元格中较陡的按钮的标记设置为索引路径。

假设您的模型类似于“myModel'类。而不是将数据解析到此模型并将数组加载到表中。现在将您的步进器按钮标记设置为您的cellForRowAtIndexpath方法中的indexpath.row。因此,当用户点击步进器时,你的slecter方法会被调用,你可以在sender.tag中获取你的索引路径,这样就可以从数组中获取对象。

希望这有帮助!

class myModel : NSObject{
var name: String!
var price: String!
var quantity: String!
}

@IBAction func clickcartaddButton(sender: UIButton) {
 let value = Int(itemQuantityStepper!.value)
 setItemQuantity(value)
 let clickedObj = dummy_dataArray[sender.tag] as! myModel
 clickedObj.quantity = value
 cartadd?(self)
 }