【发布时间】:2017-09-22 19:06:25
【问题描述】:
我正在尝试在 [NSObject:AnyObject] 类型的可变字典上创建扩展
这是 Swift 中用于 [NSObject:AnyObject] 的不可变字典扩展的语法:
extension Dictionary where Key:NSObject, Value:AnyObject {
func addSomething() {
// Fails
self["ExampleKey"] = "ExampleValue"
}
}
但是,在这种情况下,self 不能附加到,因为扩展适用于不可变字典。问题是缺少什么语法才能为专门的可变字典进行扩展。
编辑:更新以解决歧义
更新:
通过将mutating 前缀添加到addSomething,我只能对可变字典进行操作。耶!但是,该功能仍然无法正常工作
mutating func addSomething() {
// Error: Cannot subscript a value of type 'Dictionary<Key, Value>' with an index of type 'String'
self["ExampleKey"] = "ExampleValue"
}
如果我将 "ExampleKey" 转换为 Key,我会收到另一个错误:
mutating func addSomething() {
let key = "ExampleKey" as! Key
// Error: Ambiguous reference to member 'subscript'
self[key] = "ExampleValue"
}
仍在研究如何让这个简单的补充工作......
【问题讨论】:
-
问题是什么?
-
或邮政编码不起作用...
-
或回复有关您的问题的活动...很乐意提供帮助,我相信如果您改进问题,反对者会很乐意投票
标签: swift dictionary