我正在尝试制作一个带有型号名称和价格的两列表。每个模型都可以编辑和保存(另见)。为此,我想我需要一本字典:
var models = ["iPhone 6 plusss Gold 128 GB" : 1000,"iPhone 6 Plus Gold 64 GB" : 500, "iPhone 6 Gold 128 GB" : 250, "iPhone 6 Gold 16 GB" : 100]
Run Code Online (Sandbox Code Playgroud)
但是我想更新键 0,因为例如我拼错了“plusss”。我怎样才能做到这一点?
我找到了如何更新键值对:
models.updateValue(200, forKey: "iPhone 6 Gold 16 GB")
Run Code Online (Sandbox Code Playgroud)
但是我如何更新密钥?
[编辑] 显然我正在以错误的方式“思考”它。我正在阅读词典,我认为最好的方法是上课(如 vdian 评论)
您无法更改密钥,但可以删除现有密钥并添加新密钥:
extension Dictionary {
mutating func changeKey(from: Key, to: Key) {
self[to] = self[from]
self.removeValueForKey(from)
}
}
var models = ["iPhone 6 plusss Gold 128 GB" : 1000,"iPhone 6 Plus Gold 64 GB" : 500, "iPhone 6 Gold 128 GB" : 250, "iPhone 6 Gold 16 GB" : 100]
models.changeKey("iPhone 6 plusss Gold 128 GB", to: "iPhone 6 plus Gold 128 GB")
Run Code Online (Sandbox Code Playgroud)
在 Swift 中,字典需要密钥来确认 Hashable 协议。因此,为了更改密钥,您需要删除以前的条目并添加一个新条目。您不能更改密钥,因为条目可能会转到另一个存储桶。有必要查找旧条目删除它并插入新条目。有关更多信息,哈希表如何工作,请查看以下线程哈希表如何工作?
| 归档时间: |
|
| 查看次数: |
5935 次 |
| 最近记录: |