gpt4 book ai didi

ios - NSMutableArray addObject 覆盖数据 SWIFT

转载 作者:行者123 更新时间:2023-11-29 10:24:22 24 4
gpt4 key购买 nike

我正在尝试将 nsmutabledictionaries 添加到我的 nsmutablearray 中,但是当执行 addobject 时,它会用新的覆盖以前的数据。如果我尝试添加一个字符串,它工作正常,但如果我尝试添加一个 nsmutabledictionary,它就不能正常工作。我知道这个问题之前已经说过,但似乎我找不到快速语言。这是我的代码:

    @IBAction func logAction(sender: UIButton) {

let buttonRow = sender.tag
let product_name = data2[buttonRow].name
let product_price = data2[buttonRow].price
let product_id = data2[buttonRow].id

productDictionary["product_name"] = product_name
productDictionary["price"] = product_price
productDictionary["id"] = product_id

let string = product_name
productArray.addObject(productDictionary)

print(productArray, "order ends here")

}

我将以下变量作为全局变量:

var productArray = NSMutableArray()
var productDictionary = NSMutableDictionary()

我在这里做错了什么?

最佳答案

每次调用 logAction() 时,您都会更改 global productDictionary 的值。由于 NSArray 不存储您添加到它的值的副本,您每次都只是向全局字典添加另一个引用 .如果您要坚持使用 NSMutableArrayNSMutableDictionary(请参阅我对您的原始帖子的评论),然后摆脱全局 productDictionary 而不是在每次调用 logAction() 时创建一个。换句话说,替换

productDictionary["product_name"] = product_name
productDictionary["price"] = product_price
productDictionary["id"] = product_id
productArray.addObject(productDictionary)

var productDictionary = NSMutableDictionary() 
productDictionary["product_name"] = product_name
productDictionary["price"] = product_price
productDictionary["id"] = product_id
productArray.addObject(productDictionary)

let string = product_name 做了什么?

关于ios - NSMutableArray addObject 覆盖数据 SWIFT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33198951/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com