gpt4 book ai didi

ios - 使用以前删除的项目更新字典

转载 作者:行者123 更新时间:2023-11-30 13:32:19 25 4
gpt4 key购买 nike

我有两本词典。两者都在 viewController 中声明,都基于模型结构类。

// ItemDictionary
var ItemDictionary = ItemModel()
var JSONDictionary = ItemModel()

JSON 数据被输入到 JSONDictionary,然后该数据被传递到 ItemDictionary,后者在 ViewDidLoad 中提供一个表。

self.ItemDictionary = self.JSONDictionary

一切都好。该表很好地由 JSON 数据填充。我还可以从表和 ItemDictionary 中删除项目。但是,当我尝试通过引用原始字典 (JSONDictionary) 来添加项目时,该项目已经消失了。

我知道这是预期的。如果 Dictionary1 = Dictionary2,则实际上并未创建新字典。只有第二个地址。因此,如果您更改 Dictionary1,Dictionary2 也会更改。

一个实际的例子是设置价格范围。您可以缩小范围并减少表格上显示的项目。但如果您想提高价格范围,则无法替换之前删除的商品。我不想每次编辑范围时都调用 JSON 脚本。感谢建议。

最佳答案

经OP确认,ItemModel是一个类,而不是Dictionary。要解决此问题,您需要使 ItemModel 成为真正的 Dictionary ,从而成为值类型。这可能是首选,但会需要更多工作。

另一种方法是向 ItemModel 类添加一个方便的初始值设定项,该类实例化自身的新副本并调用它,而不是设置 self.ItemDictionary = self.JSONDictionary .

类似这样的事情。

init(model: ItemDictionary) -> ItemDictionary {
// copy properties
}

然后创建新副本。

self.ItemDictionary = ItemDictionary(self.JSONDictionary)

稍后您可以使用相同的调用重新初始化 ItemDictionary

关于ios - 使用以前删除的项目更新字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36436077/

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